2009-03-19 3 views
1

Я получил следующую разметку в WPF UserControl:LastChildFill не работает при попытке Доку ItemsControl

<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. Горизонтальные и вертикальные значения «Stretch» ​​также не помогают. Что мне не хватает?

ответ

2

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

2

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

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