Док - /заполнять в WPF
Это кажется таким простым вопросом, но я пытаюсь в течение часа и, похоже, не могу понять.
все, что я хочу сделать, это заполнить окно холстом. Я не мог найти никаких свойств, чтобы позволить это, и единственный способ, который я мог придумать, это установить Canvas.Width/Height = MainWindow.Width/Height
, но мне придется делать это каждый раз, когда окно изменяется.
в WinForms стыковка элемента в Родительском контейнере была простой.
4 ответов
просто установите холст.поле HorizontalAlignment и имеет "растянуть". Это заставит холст заполнить пространство, доступное из него, содержащего элемент UI. Просто не указывайте ширину / высоту явно.
в XAML, это просто:
<Window ...Other window props... >
<Canvas HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<!-- Canvas items here... -->
</Canvas>
</Window>
в WPF можно выполнить стыковку, поместив элементы в DockPanel и используя унаследованное свойство Dock. Однако, если вы хотите, чтобы все окно было холстом, просто сделайте так, чтобы содержимое окна было холстом, а не другой панелью:
<Window ...>
<Canvas>
<!-- blah blah -->
</Canvas>
</Window>
поместите это для ширины и высоты холста в xaml.
Width="{Binding Path=ActualWidth, ElementName=Window1}"
Height="{Binding Path=ActualHeight, ElementName=Window1}"
он должен измениться соответствующим образом при изменении размера окна
неважно, кажется, вам нужно добавить DockPanel
:
<DockPanel Name="dockPanel1">
<Canvas Name="canvas1" Background="White"></Canvas>
</DockPanel>