Warum ist meine WPF-gehostete WinForm leer?

1 Antwort

9
%Vor%

Ihr XAML bettet ein System.Windows.Forms.Form-Objekt in den WinFormsHost ein. Was ist das, was Sie haben, nur ein leeres Formular ohne eingebettete Kindersteuerelemente. Es sieht so aus, als hätten Sie versucht, im WinFormsHost-Konstruktor eine eigene zu erstellen, die die Child-Eigenschaft zuweist, aber Ihr XAML überschreibt sie, sodass Sie nur noch ein leeres Formular übrig haben.

Ich habe eine ChildForm-Klasse in denselben Namespace eingefügt:

%Vor%

Und aktualisiert das XAML zu:

%Vor%

Um zu bekommen:

Setzen Sie den FormBorderStyle auf None, um den Rahmen zu entfernen. Etcetera.

Wenn Sie die TopLevel-Eigenschaft des Formulars auf "false" und die "Visible" -Eigenschaft auf "true" setzen, ist dies eine viel einfachere Möglichkeit, ein Formular in ein untergeordnetes Steuerelement zu verwandeln. Ich habe es so gelassen, seit du angedeutet hast, dass du vielleicht einem Delphi-Fenster die gleiche Behandlung geben willst. In diesem Fall möchten Sie möglicherweise wieder zu Ihrem ursprünglichen Ansatz zurückkehren, indem Sie das Kind im Formularklassenkonstruktor erstellen und die Inhaltszuweisung im XAML einfach weglassen.

    
Hans Passant 24.12.2013, 10:10
quelle