Können WPF- und Windows Forms-Steuerelemente in einer Anwendung verwendet werden? Wie schwierig oder praktisch ist eine Idee?Können WPF und WinForms innerhalb einer Anwendung gemischt werden?
Antwort
Ich glaube, es ist eine Windowssteuerung Sie in Ihren WPF-Anwendungen setzen können, die Interop zurück zu WinForms Code tun:
Sie können auch verwenden, um eine HwndSource und HwndHost steuert WPF einzubetten steuert in eine WinForms (oder irgendeine Win32, wirklich) App.
Wir hosten signifikant komplexe WPF-Steuerelemente in einer vorhandenen LOB-WinForms-App. Es kann getan werden, aber wir hatten Probleme (einige wurden zweifellos durch die steile Lernkurve verursacht). Diese hatten hauptsächlich damit zu tun, dass Fokusverlustereignisse nicht wie erwartet ausgelöst wurden, und auch Probleme mit der Tastaturnavigation.
Ja, Sie können sowohl Windows Forms innerhalb einer WPF-Anwendung als auch WPF-Steuerelemente in Windows Forms. Die Mind-Mapping-Anwendung von www.novamind.com ist eine gelungene Mischung der beiden Technologien.
Beim Hosten von Nicht-WPF-Inhalten (seien es HTML-, WinForms- oder Win32-Inhalte) haben Sie Airspace Probleme. Dies bedeutet, dass Sie den WPF-Inhalt nicht vollständig mit dem gehosteten Inhalt kompilieren können. Sie können es auch nicht animieren usw. Es gibt einige interessante Probleme in Bezug auf scrollviewers see here for more details and a fix auch.
Es ist relativ einfach, WPF-Steuerelemente in einer WinForms-App mit einem ElementHost
-Adapter oder WinForms-Steuerelementen in einer WPF-App mit einem WindowsFormsHost
-Adapter zu hosten. Es gibt jedoch nicht viele Ressourcen im Web, die zeigen, wie man beides tut. Während ich lernte, wie ich das für mich selbst tun kann, entdeckte ich schnell die inhärenten Symmetrien zwischen den beiden Wegen. Ich habe all meine Notizen zu einem Artikel destilliert, der diese Symmetrien mit einem einzigartigen Ansatz vergleicht und kontrastiert: Der Artikel besteht aus zwei nebeneinander liegenden Artikeln, die jeden Schritt im Detail vergleichen, beginnend mit der Erstellung einer Benutzerkontrolle in einer Technologie bis hin zum Hosting in einer Anwendung in der "entgegengesetzten" Technologie. Mein Artikel, veröffentlicht auf SimpleTalk.com im August 2010 ist hier verfügbar: Mixing WPF and WinForms.
Der Vollständigkeit halber finden Sie hier einige gute MSDN-Referenzen, eine für jeden Pfad. In der Tat begann die Demo-Lösung meinen Artikel begleitet von den beiden folgenden:
- 1. Wie können Werte in einer Karte zufällig gemischt werden?
- 2. Automatisierungstests für WinForms und WPF
- 3. Visual Design-Anwendung: WPF oder WinForms (GDI)?
- 4. Wie können die 3D-Tensor-Dimensionen im Tensorflow gemischt werden?
- 5. WPF-Ereignisse in Winforms
- 6. Entwickeln einer Winforms-Anwendung für einen Tablet PC und WindowMobile
- 7. WPF-Anwendung: Fehlende Ressourcen beim Starten von WinForms App
- 8. Verwenden Sie ein Benutzersteuerelement als DataTemplate innerhalb einer WPF-Anwendung
- 9. Muss Caffe Daten gemischt werden?
- 10. Einbetten einer Konsolenanwendung in eine Winforms-Anwendung
- 11. Freigeben von Grafiken zwischen WPF und Winforms
- 12. Unterschied zwischen Winforms, WPF und Metro?
- 13. Machen WinForms-Anwendung WinForms/Console Hybrid
- 14. Verwenden eines benutzerdefinierten WPF-Steuerelements in WinForms
- 15. Save Settings in einer .NET-WinForms-Anwendung
- 16. C# - Hinzufügen/Anzeigen einer Instanz einer Anwendung innerhalb einer <TabItem> einer anderen Anwendung
- 17. Wie können Knoten eines TreeViews gefüllt werden? (C# winforms)
- 18. Unterstützung mehrerer Sprachen in einer Winforms-Anwendung
- 19. VNC-Steuerelement für WPF-Anwendung
- 20. Wie oft können Klassen innerhalb einer Klasse verschachtelt werden?
- 21. HTML-Bearbeitung in WinForms oder WPF-Anwendungen
- 22. Beispiele für schnelle .NET WPF/WinForms-Anwendungen?
- 23. WPF-Anwendung Nachrichtenschleife und PostThreadMessage
- 24. Android-Anwendung innerhalb einer anderen Anwendung
- 25. WPF: Wie können Steuerelemente in einem StackPanel gedehnt werden?
- 26. WinForms-Anwendung in MonoDevelop
- 27. Wo können globale Konstanten in einer Android-Anwendung gespeichert werden?
- 28. Einbetten von WinForms-Grafik in WPF-Fenster
- 29. Warum sollte ich WPF über Winforms verwenden? Beispiele für WPF, die Winforms übertreffen?
- 30. WPF Ziehen innerhalb der Anwendung HRESULT E_FAIL von COM-Komponente werfen
Das Mischen WPF und WinForms Artikel ein gutes Beispiel ist. Eine sehr klare Erklärung und gut illustriert, ein Muss für jeden, der diese Aktivität in Betracht zieht. Vielen Dank! – RAM