WPF WindowsFormsHost-sizing
Wollte ich wickeln Sie ein windows forms-Steuerelement in einer wpf-UserControl
<UserControl x:Class="MVVMLibrary.ReportViewer"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:ws="clr-namespace:Microsoft.Reporting.WinForms;assembly=Microsoft.ReportViewer.WinForms"
Height="Auto" Width="Auto">
<Grid>
<WindowsFormsHost Name="Host">
<ws:ReportViewer/>
</WindowsFormsHost>
</Grid>
</UserControl>
Beachten Sie, dass Höhe und Breite auto.
Wenn ich es in einem stackpanel oder grid control stellt es die Höhe auf 0 und im Grunde verschwindet. Der Benutzer ist dann erforderlich, um die Größe der Fenster(verkleinert, weil das usercontrol sagte, ich brauche nicht, kein Platz, danke). Wenn der Benutzer ändert die Größe erstreckt sich das, was der Benutzer angibt.
Also meine Frage ist was habe ich falsch gemacht? Wie mache ich mein usercontrol nehmen den ganzen Raum zur Verfügung, statt nicht zu Fragen, für alle?
InformationsquelleAutor Jose | 2009-06-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Finde ich eine bessere Antwort.
Verwenden Sie ein dockPanel mit LastChildFill=true und setzen Sie dann im inneren des WindowsFormsHost-mit Horizontalen und Vertikalen Ausrichtung um die Strecke, und natürlich die WindowsForms-Steuerelements zu füllen.
Genießen",
InformationsquelleAutor ykatchou
Das gleiche problem hier. Was ich gemacht habe, ist das binden der WindowsForm control (müssen eingebettet werden) Abmessungen auf die Abmessungen (Breite und Höhe) der Eltern-Host hat(d.h. die WindowsFormHost) siehe code unten. Dies erfolgt nach dem windows-Formular wird geladen:
Wo UserWinFormControl ist das Steuerelement eingebettet werden/veranstaltet von der WindowsFormHost
In den Xaml-Code schreiben:
Alles ist in Ordnung, keine flackert, wenn die Größe des app.
InformationsquelleAutor alexander lilov
Einige Korrekturen: DockPanel hat LastChildFill standardmäßig aktiviert, und die Horizontale und Vertikale Ausrichtung werden automatisch eingestellt, sich zu Strecken.
So die knappe Antwort ist: Verwenden Sie ein DockPanel
InformationsquelleAutor DLeh
Hatte ich das gleiche problem. Die Art, wie ich es behoben wurde, ändern Sie die Größe des Steuerelements innerhalb des WindowsFormsHost zur Laufzeit.
In meinem Fall habe ich ein StackPanel-Steuerelement zu hosten des Steuerelements zur Laufzeit setze ich die Höhe und Breite des Steuerelements in meinem WindowsFormsHost, um die Breite und die Höhe des Stackpanel-Steuerelement. Sie wollen die ActualHieight und ActualWidth Eigenschaften.
Leider hatte ich zu Haken bis zu der Dimensionierung Fall ändern Sie es jedes mal, wenn das Fenster vergrößert wurde.
InformationsquelleAutor David Basarab
Ich hatte irgendeine Art von ähnlichen problem. Ich konnte mein Problem behoben, durch das entfernen der min-und max-Höhe und Breite Einstellungen aus der Windows forms-Formular.
Nach, dass ich das DockPanel wie ykatchou vorgeschlagen. Ich habe noch einige Probleme mit der DPI-Wert, aber ich glaube nicht, dass Sie viel aus. Es ist hässlich, aber es funktioniert
InformationsquelleAutor thepaulpage