Kann ich ein WPF-Fenster übereinander legen?
Habe ich ein WPF-Fenster, welches eine WindowsFormsHost
element. Ich brauche, um zu zeichnen, Dinge auf der Oberseite von diesem element, aber die Natur WindowsFormsHost
bedeutet, dass es immer auf die oberste des nachziehstapels auf. Da ich nicht zeichnen kann in der gleichen WPF-Fenster auf der Oberseite des WindowsFormsHost
Komponente, kann ich ein weiteres overlay-Fenster?
Ich habe versucht, dies in einer rudimentären Art und Weise, aber ich habe ein paar Probleme:
1) ich kann nicht aufhören zu windows-aus anderen apps gehen in zwischen dem Hauptfenster und die overlay-Fenster.
2) Wenn ich mit Alt-Tab das overlay-Fenster in der Fensterliste, das ist ziemlich hässlich.
Im Prinzip brauche ich das Konzept einer "Kind-Fenster", und Fenster, die für alle Absichten und Zwecke erscheint als Teil der anderen Fenster. Benutzersteuerelemente werden nicht für mich arbeiten, als die WindowsFormsHost
wird immer Remis oben drauf.
Irgendwelche Ideen?
Update [Mai 23 '11 at 10:13 ]
Danke Euch beiden für die Antworten.
Ich habe versucht, die ChildWindow
Ansatz, und die WindowsFormsHost
element zieht immer noch an der Spitze. Wie ich es verstehe, nur ein echtes Fenster ziehen kann, auf der Spitze eines WindowsFormsHost
alles im gleichen Fenster unter die WindowsFormsHost
.
Einem element mit der WindowsFormsHost
wird sich noch ziehen unter eine WinForms-Komponente sind Sie immer an der Spitze, und das scheint nicht verhandelbar...
Ich denke, was ich Suche, ist eine Möglichkeit zum andocken eines externen Fenster handeln als Teil des Haupt-Fensters. Auf dem Mac, es ist das Konzept eines echten "Kind-Fenster", ich bin auf der Suche nach sowas.
InformationsquelleAutor der Frage Garry | 2011-05-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
In einem typischen MVP-Anwendung mithilfe von CAL oder Event aggregator, müssen Sie möglicherweise erstellen Sie ein weiteres Fenster und nennen Sie es popup oder Kind (
ChildWindow.XAML
) und eine get-Methode in (ChildWindow.XAML.CS
) wieHaben eine Eigenschaft, die in der maniwindow die zurückgeben kann Childwindow geben, wenn Sie diese benötigen.
wie
Hoffe, das hilft,
InformationsquelleAutor der Antwort Ranjith Rajan
Könnten Sie die "überstehende" Teil in der
WindowsFormsHost
. So da Sie könnte haben ein Kind-element sollte auf andere Inhalte im hosted-element.InformationsquelleAutor der Antwort Daniel Rose
Ich würde vorschlagen, mit der MahApps Bibliothek.
Ich habe gekämpft, mit diesem Problem für einige Zeit und fand die MahApps-Bibliothek behoben, der Luftraum problem ohne irgendeine Konfiguration auf meinem Teil. Für mehr Informationen, siehe unsere FAQ:
https://github.com/MahApps/MahApps.Metro/wiki/FAQ#1-why-is-so-and-so-winforms-control-invisible-or-not-rendering-why-is-the-webbrowser-or-other-control-covering-my-flyout-or-another-control-airspace
InformationsquelleAutor der Antwort Gordon Slysz