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