尝试停靠ItemsControl时LastChildFill不起作用

时间:2009-03-19 17:56:56

标签: wpf itemscontrol

我在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属性。水平和垂直“拉伸”值也没有帮助。我错过了什么?

2 个答案:

答案 0 :(得分:2)

你的DockPanel的大小是多少?尝试在DockPanel上设置背景以进行测试。

我不认为你的问题是你的ItemsControl没有拉伸来填充你的DockPanel,但实际上你的DockPanel没有伸展到适合Canvas Control。画布控件及其子控件不会调整大小以适合父级。

答案 1 :(得分:2)

如果完全删除Canvas,则不会出现此问题。引入画布后,需要在Canvas中设置元素的大小和位置(如DockPanel)。