LastChildFill не работает при попытке закрепить ItemsControl - PullRequest
1 голос
/ 19 марта 2009

У меня есть следующая разметка в пользовательском элементе управления 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 заполнил все доступное пространство, но он не подчиняется свойству DoCPanel LastChildFill. Значения «Растянуть» по горизонтали и вертикали тоже не помогают. Что мне не хватает?

Ответы [ 2 ]

2 голосов
/ 19 марта 2009

Если вы полностью удалите Canvas, у вас не возникнет этой проблемы. После того, как вы представите холст, вам нужно установить размер и положение элементов в холсте (например, DockPanel).

2 голосов
/ 19 марта 2009

Каков размер вашей DockPanel? Попробуйте установить фон на DockPanel для тестирования.

Я не думаю, что ваша проблема в том, что ваш ItemsControl не растягивается, чтобы заполнить вашу DockPanel, но на самом деле ваша DockPanel не растягивается, чтобы поместиться в Canvas Control. Элемент управления Canvas и его дочерние элементы не изменят размер, чтобы соответствовать их родителю.

...