Wie funktioniert AppBar Docking (Bildschirmrand wie WinAmp) in WPF?
Gibt es eine komplette Leitlinien zu tun AppBar docking (wie das sperren des Bildschirm-Rand) in WPF? Ich verstehe, es gibt InterOp-Anrufe, die gemacht werden müssen, aber ich bin auf der Suche nach entweder ein proof-of-concept basiert auf einer einfachen WPF-form, oder eine komponentenbasierte version, die konsumiert werden können.
Verwandte Ressourcen:
- http://www.codeproject.com/KB/dotnet/AppBar.aspx
- http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/05c73c9c-e85d-4ecd-b9b6-4c714a65e72b/
InformationsquelleAutor der Frage paulwhit | 2008-09-16
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bitte Beachten Sie: Diese Frage versammelt, die eine gute Menge an feedback, und einige Leute unten große Punkte oder behebt. Daher werde ich den code hier (und ggf. aktualisieren), ich bin auch erstellt eine WpfAppBar Projekt auf github. Fühlen Sie sich frei, zu senden, ziehen Sie Anfragen.
Selben Projekt baut auch auf eine WpfAppBar nuget-Paket
Ich habe den code aus dem ersten link, der in der Frage ( http://www.codeproject.com/KB/dotnet/AppBar.aspx ) und modifiziert es, zwei Dinge zu tun:
Dieser Ansatz nicht erstellen Sie eine Basisklasse.
Verwenden, rufen Sie einfach diesen code aus einer beliebigen Stelle in einem normalen wpf-Fenster (z.B. klicken auf eine Schaltfläche oder das initialisieren). Beachten Sie, dass Sie können nicht nennen Sie dies, bis, NACHDEM das Fenster ist initialisiert, wenn der HWND-noch nicht erstellt wurden (wie der Konstruktor), wird ein Fehler auftreten.
Machen Sie das Fenster ein appbar:
Wiederherstellen das Fenster zu einem normalen Fenster:
Hier ist der vollständige code der Datei - Hinweis werden Sie wollen, ändern Sie den namespace auf der Linie 7 etwas passendes.
InformationsquelleAutor der Antwort Philip Rieck
Sehr glücklich gefunden zu haben, diese Frage. Oben Klasse ist wirklich nützlich, ist aber nicht ganz decken alle Grundlagen der AppBar Umsetzung.
Vollständig implementieren alle das Verhalten einer AppBar (cope mit fullscreen-apps etc) Sie gehen zu wollen, Lesen Sie in diesem MSDN-Artikel zu.
http://msdn.microsoft.com/en-us/library/bb776821.aspx
InformationsquelleAutor der Antwort Shuft
Mir modifizierte code von Philipp Rieck (btw. Thanks a lot) zu arbeiten in mehrere display-Einstellungen. Hier ist meine Lösung.
InformationsquelleAutor der Antwort Miky Jadro
Es ist eine ausgezeichnete MSDN-Artikel von 1996, die ist unterhaltsam bis zum Datum: Erweitern Sie die Windows 95-Shell-Anwendung mit Desktop-Symbolleisten. Nach der Führung erzeugt eine WPF-basierte App-Leiste mit einer Reihe von Szenarien, dass die anderen Antworten auf dieser Seite nicht:
Ich habe auch einen demo-app und der Implementierung von
AppBarWindow
auf GitHub.Beispiel verwenden:
Codebehind:
Ändern angedockten position:
Ändern der Größe mit Daumen:
Zusammenarbeit mit anderen appbars:
Klon von GitHubwenn Sie es verwenden möchten. Die Bibliothek selbst ist nur drei Dateien, und kann leicht gelöscht werden, die in einem Projekt.
InformationsquelleAutor der Antwort Mitch
Sorry, der Letzte code, den ich gepostet hat nicht funktioniert, wenn sich die Taskleiste verändert. Den folgenden code ändern scheint, besser zu arbeiten:
InformationsquelleAutor der Antwort
Als eine kommerzielle alternative finden Sie in der ready-to-use ShellAppBar Komponente für WPF unterstützt alle Fällen und secnarios wie Taskleiste angedockt Links,rechts,oben,unten Kante, Unterstützung für mehrere Monitore, drag-docking, autohide , etc etc. Es kann sparen Sie Zeit und Geld, die versuchen, um allen diesen Fällen selbst.
HAFTUNGSAUSSCHLUSS: ich arbeite für LogicNP Software, die Entwickler von ShellAppBar.
InformationsquelleAutor der Antwort logicnp
Habe ich damit verbracht, einige Wochen erkunden dieser Herausforderung und schließlich erstellt eine sehr solide NuGet-Paket-Bereitstellung dieser Funktionalität in sehr freundlicher Weise. Erstellen Sie einfach ein neues WPF-app ändern Sie dann die Hauptfenster-Klasse von Fenster zu DockWindow (in XAML) und das ist es!
Bekommen das Paket hier und sehen Sie sich das Git-repo für eine demonstration app.
InformationsquelleAutor der Antwort Hugh