Élément d'espacement dans WPF ItemsControl
J'affiche une List<string>
collection dans un ItemsControl. Le problème est qu'il n'y a pas d'espace entre les éléments de la liste TheyAreAllNextToEachOther.
Comment puis-je créer un certain espacement entre les éléments?
<ItemsControl Grid.Column="2"
Grid.ColumnSpan="2"
ItemsSource="{Binding Path=ShowTimes}"
BorderThickness="0">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel IsItemsHost="True" Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
Juste pour que vous savez la différence entre les deux réponses qui vous ont été fournis avec, le
ItemContainerStyle
est un Style
pour l'élément 'conteneur', ou la ListBoxItem
si vous étiez à l'aide d'un ListBox
. Le ItemTemplate
est un DataTemplate
qui définit ce que le "contenu" des articles devrait ressembler. Par conséquent, dans le ItemContainerStyle
, vous pouvez accéder aux propriétés du conteneur (par exemple. ListBoxItem.IsSelected) et dans le DataTemplate
, vous pouvez accéder à la classe publique propriétés de l'élément de données.OriginalL'auteur Denys Wessels | 2014-01-07
Vous devez vous connecter pour publier un commentaire.
Je voudrais ajouter un ItemTemplate où vous définissez la marge
Si vous voulez un espacement de 3 vous pouvez définir des marges gauche et droite à 1,5... juste pour dire
Si vous voulez juste les lacunes sans extérieur de l'espacement des éléments de contrôle, définissez des marges négatives pour l'élément de panneau, égal à la marge positive les objets:
<WrapPanel IsItemsHost="True" Orientation="Horizontal" Margin="-3,-3,-3,-3"/>
dans le cas de cette réponse avec un point d'écart de 6.Pas conseillé d'utiliser un modèle de données pour cette pratique. Si tout ce qui vous intéresse est la marge itemcontainer est beaucoup mieux.
OriginalL'auteur gomi42
Fournir le style de votre ItemsControl conteneurs (par défaut ContentPresenter) comme celle où vous pouvez définir la Marge - à-dire 5:
OriginalL'auteur Rohit Vats