2009-03-19 6 views
1

J'ai le balisage suivant dans un WPF UserControl:LastChildFill ne fonctionne pas lorsque vous essayez de Dock 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> 

Je voudrais ItemsControl pour remplir tout l'espace disponible, mais ce ne sont pas obéir aux années DockPanel Propriété LastChildFill. Les valeurs "Stretch" horizontales et verticales n'aident pas non plus. Qu'est-ce que je rate?

Répondre

2

Si vous supprimez complètement le canevas, vous n'aurez pas ce problème. Une fois que vous avez introduit une toile, vous devez définir la taille et la position des éléments dans le Canevas (comme le DockPanel).

2

Quelle est la taille de votre DockPanel? Essayez de définir un arrière-plan sur votre DockPanel pour le tester.

Je ne pense pas que votre problème avec votre ItemsControl ne s'étire pas pour remplir votre DockPanel, mais en réalité votre DockPanel ne s'étire pas pour s'adapter à l'intérieur du Canvas Control. Le contrôle Canvas et ses enfants ne seront pas redimensionnés pour s'adapter à leur parent.