Render WPF-Steuerelement über WindowsFormsHost

8

Ich weiß, dass das standardmäßige WPF-Verhalten WPF-Steuerelemente rendert und dann oben WinForms rendert, aber gibt es irgendeine Möglichkeit, WPF über WindowsFormsHost zu rendern?

Bearbeiten : Ich habe auch einen Temp-Hack gefunden. Wenn wpf-Steuerelement WindowsFormsHost überlappt, ändere ich die Größe von WindowsFormsHost (Dies funktioniert nur, wenn Sie rechteckige Objekte haben, die sich überlappen, funktioniert nicht für andere Formen.)

    
Vitalij 12.05.2011, 13:42
quelle

5 Antworten

5

Dieses "Luftraum" -Problem ist vermutlich behoben in WPF vNext. Es gibt einige Lösungen, wie zum Beispiel hier , hier und hier .

Eine Möglichkeit besteht darin, den WPF-Inhalt in einem transparenten Popup oder Fenster zu hosten, das den Interop-Inhalt überlagert.

    
CodeNaked 12.05.2011, 13:51
quelle
7

Spät auf der Party, ich weiß, aber ich bin kürzlich auf dieses Problem mit einem WebBrowser-Steuerelement gestoßen.

Der letzte Fix bestand darin, einen Screenshot des Webbrowsers zu erstellen, wenn ich einen modalen Dialog über den oberen Bildschirmrand hielt. Da dies ein bisschen knifflig war, habe ich es in ein Github-Projekt verwandelt, hoffentlich hilft das ein wenig -

Ссылка

(Es ist auch auf Nuget, unter AirspaceFixer)

Sobald Sie das Projekt haben, ist alles was Sie tun müssen

%Vor%

Dabei ist FixAirspace die Abhängigkeitseigenschaft, die von der "echten" Ansicht des Inhalts in den Screenshot oder die "falsche" Ansicht wechselt.

    
chris84948 23.11.2016 22:07
quelle
6

Hier ist ein Link zu der besten Antwort, die ich bisher zu diesem Thema gesehen habe: Kann ich ein WPF-Fenster oben überlagern von einem anderen?

    
AVIDeveloper 09.07.2011 00:04
quelle
3

Versuchen Sie dies für die Größe:

%Vor%     
sky-dev 14.05.2014 18:31
quelle
2

Wenn jemand mit den Hacks unzufrieden ist, ist es immer eine Option, die Sichtbarkeit von WindowsFormsHost auf Collapsed oder Hidden zu setzen.

    
Tim 03.03.2016 21:18
quelle

Tags und Links