Frage

Ich habe eine vorhandene WinForms-Anwendung, für die ich jetzt neue Bits in WPF Gestaltung bin. Es läuft recht gut, und ich habe in meine erste Notwendigkeit für einen Dialog führen.

Ich möchte den Dialog in WPF zu tun. Es scheint, als ob ich ein Benutzersteuerelement für den eigentlichen Inhalt müssen tun würde und Host dann, dass der Inhalts über eine WinForms mit einem Elemente bilden (da Usercontrol hat keinen Showdialog () -Methode).

Und das ist, wo meine Frage. Wie funktioniert das? Beste, was ich sagen kann, ist die WPF Usercontrol hat noch nicht einmal eine Dialogresult-Eigenschaft (die gegebenen Sinn macht, dass es keinen Showdialog () -Methode hat) - es sieht für mich wie ich eine WPF-Fenstersteuerung benötigen würde - und ich weiß nicht glaube ich, dass in diesem Fall verwendet werden.

Struggling mit der Grundströmung und Einrichtung der Dinge hier. Kann jemand ein Licht leuchten?

Ist das überhaupt möglich?

War es hilfreich?

Lösung

Sie können ein WPF-Fenster aus einer WinForms-Anwendung öffnen.

Sie einfach das Fenster erstellen und ShowDialog() nennen. Die CLR wird den WPF Rahmen geladen werden und das Fenster öffnen.

Andere Tipps

Wenn Sie Ihre Interop-Anwendung wollen arbeiten meist wie eine WinForms-Anwendung, dann ist der Ansatz, den Sie beschreiben, funktioniert gut. - Ich habe so ziemlich die gleiche Sache in meinem Interop Fälle

WPF unterstützt Messageboxes (wenn auch eine etwas andere Version als WinForms) und Sie etwas gemeinsam mit WPF Fenster (es erstreckt durch Zugabe von etwas ähnliches Dialogresult) setzen könnte. Allerdings deuten die zur Verfügung gestellten WPF-Steuerelemente, dass sie versuchen, UX-Interaktionen zu ändern Dialoge zu minimieren, insbesondere Modal diejenigen.

Ihr Leben einfacher, obwohl zu machen, ich habe eine WinForms Form / Elementunterklasse speziell für den Umgang w / Hosting WPF Inhalte erstellen würde, und je nachdem, wie sauber Sie Ihre Erklärungen „verwenden“, Ihre eigene Dialogresult artige Aufzählung Einwickeln, so dass Sie müssen nicht den System.Windows.Forms Namespace enthalten, die WPF-Code-behinds umständlicher machen kann.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top