1

我在 WPF 用户控件中有以下标记:

<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 属性。水平和垂直“拉伸”值也无济于事。我错过了什么?

4

2 回答 2

2

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

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

于 2009-03-19T18:29:13.517 回答
2

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

于 2009-03-19T18:51:30.593 回答