我在WPF UserControl中有以下标记:
<Border Name="_border" BorderThickness="4" BorderBrush="Blue">
<Canvas Name="_canvas" Background="Black" >
<DockPanel LastChildFill="True">
<ItemsControl Name="_itemsControl" Background="Bisque" AllowDrop="True" Height="100" Width="100"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
ItemTemplate="{StaticResource pictureTemplate}"
ItemsPanel="{StaticResource panelTemplate}"
Drop="_itemsControl_Drop"
DragOver="_itemsControl_DragOver"
DragLeave="_itemsControl_DragLeave"
PreviewMouseLeftButtonDown="_itemsControl_PreviewMouseLeftButtonDown"
PreviewMouseMove="_itemsControl_PreviewMouseMove">
</ItemsControl>
</DockPanel>
</Canvas>
</Border>
我希望ItemsControl能够填充所有可用空间,但它不符合DockPanel的LastChildFill属性。水平和垂直“拉伸”值也没有帮助。我错过了什么?
答案 0 :(得分:2)
你的DockPanel的大小是多少?尝试在DockPanel上设置背景以进行测试。
我不认为你的问题是你的ItemsControl没有拉伸来填充你的DockPanel,但实际上你的DockPanel没有伸展到适合Canvas Control。画布控件及其子控件不会调整大小以适合父级。
答案 1 :(得分:2)
如果完全删除Canvas,则不会出现此问题。引入画布后,需要在Canvas中设置元素的大小和位置(如DockPanel)。