Frage

Dies scheint wie eine solche einfache Frage, aber ich habe eine Stunde lang versucht, und kann nicht scheinen, um es herauszufinden.

Alles, was ich tun möchte, ist das Hauptfenster mit einer Leinwand zu füllen. Ich konnte keine Eigenschaften finden, dies zu ermöglichen, und die einzige Möglichkeit, die ich denken könnte, es zu tun Satz Canvas.Width/Height = MainWindow.Width/Height ist, aber ich würde zu tun hat, dass jedes Mal, wenn die Fenstergröße verändert wird.

In WinForms ein Element in einem übergeordneten Container Andocken war einfach.

War es hilfreich?

Lösung

Just setzen die Leinwand. Horizontal und Vertical "Stretch". Dies wird die Leinwand bewirken, dass der Platz von ihm enthält UI-Element füllen. So stellen Sie sicher nicht explizit Breite / Höhe angeben.

In XAML, das ist nur:

<Window ...Other window props... >
    <Canvas HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
        <!-- Canvas items here... -->
    </Canvas>
</Window>

Andere Tipps

setzen diese für Ihre Leinwand Breite und Höhe in XAML.

Width="{Binding Path=ActualWidth, ElementName=Window1}"
Height="{Binding Path=ActualHeight, ElementName=Window1}"

es sollte entsprechend geändert werden, wenn Sie das Fenster

Ändern der Größe

In WPF können Sie Docking tun, indem Sie Ihre Elemente in einem DockPanel platzieren und das Dock geerbt Eigenschaft. wenn Sie das gesamte Fenster sein, eine Leinwand Allerdings wollen, machen es einfach so aus dem Fenster Inhalt der Leinwand ist, und nicht eine andere Art von Panel:

<Window ...>
    <Canvas>
        <!-- blah blah -->
    </Canvas>
</Window>

Nevermind, es scheint, Sie haben eine DockPanel hinzuzufügen:

<DockPanel Name="dockPanel1">
    <Canvas Name="canvas1" Background="White"></Canvas>
</DockPanel>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top