Question

J'ai le balisage suivant dans un contrôle utilisateur 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>

Je voudrais que ItemsControl remplisse tout l'espace disponible, mais il n'obéit pas à la propriété LastChildFill de DockPanel. L'extension horizontale et verticale & Quot; Stretch & Quot; les valeurs n'aident pas non plus. Qu'est-ce que je rate?

Était-ce utile?

La solution

Si vous supprimez complètement le canevas, vous ne rencontrerez pas ce problème. Une fois que vous avez introduit un canevas, vous devez définir la taille et la position des éléments dans le canevas (comme DockPanel).

Autres conseils

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 soit que votre contrôle ItemsControl ne s'étire pas pour remplir votre DockPanel, mais en réalité, votre DockPanel ne s'étire pas pour tenir dans le contrôle Canvas. Le contrôle de la toile et ses enfants ne seront pas redimensionnés pour s'adapter à leur parent.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top