这似乎是一个简单的问题,但我已经尝试了一个小时,似乎无法弄明白。
我想做的就是用Canvas填充MainWindow。我找不到允许这样做的任何属性,我想到的唯一方法是设置Canvas.Width/Height = MainWindow.Width/Height
,但每次调整窗口大小时我都必须这样做。
在WinForms对接中,父容器中的元素很容易。
答案 0 :(得分:20)
只需将Canvas。HorizontalAlignment和VerticalAlignment设置为“Stretch”即可。这将导致Canvas填充其包含UI元素的可用空间。只需确保不明确指定宽度/高度。
在XAML中,这只是:
<Window ...Other window props... >
<Canvas HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<!-- Canvas items here... -->
</Canvas>
</Window>
答案 1 :(得分:3)
将此画布宽度和高度设置为xaml。
Width="{Binding Path=ActualWidth, ElementName=Window1}"
Height="{Binding Path=ActualHeight, ElementName=Window1}"
当您调整窗口大小时,它应该相应地改变
答案 2 :(得分:3)
在WPF中,您可以通过将项目放在DockPanel中并使用Dock继承属性来进行对接。但是,如果您希望整个Window都是Canvas,那么只需将它设置为Window的内容就是画布,而不是另一种面板:
<Window ...>
<Canvas>
<!-- blah blah -->
</Canvas>
</Window>
答案 3 :(得分:0)
没关系,似乎你必须添加DockPanel
:
<DockPanel Name="dockPanel1">
<Canvas Name="canvas1" Background="White"></Canvas>
</DockPanel>