2010-07-25 10 views
6

Je veux écrire le modèle XAML d'une liste déroulante pour augmenter les espaces/remplissage entre les éléments. je cherchais pour cela, mais finissent presque avec le ItemsPresenter:Comment augmenter le remplissage des éléments affichés combobox?

<ItemsPresenter x:Name="ItemsPresenter" 
       KeyboardNavigation.DirectionalNavigation="Contained" 
       SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/> 

Comment puis-je formater l'élément (frontière, rembourrage, police ...) à l'aide de ce modèle? S'il vous plaît aider.

+0

Je suis dans le besoin de cela aussi! Au plaisir d'entendre de vous tous les gars. –

Répondre

8

Vous pouvez utiliser ItemContainerStyle pour appliquer un style à la ComboBoxItems qui définit des propriétés telles que padding:

<ComboBox ItemsSource="{Binding}"> 
    <ComboBox.ItemContainerStyle> 
     <Style TargetType="ComboBoxItem"> 
      <Setter Property="Padding" Value="5"/> 
      <Setter Property="BorderBrush" Value="Blue"/> 
      <Setter Property="BorderThickness" Value="2"/> 
      <Setter Property="FontFamily" Value="Courier New"/> 
     </Style> 
    </ComboBox.ItemContainerStyle> 
</ComboBox> 

Si vous voulez appliquer à toutes les zones de liste déroulante, vous pourriez plutôt créer un style implicite ComboBoxItem dans vos ressources:

<Window.Resources> 
    <Style TargetType="ComboBoxItem"> 
     <Setter Property="Padding" Value="5"/> 
    </Style> 
</Window.Resources> 
<StackPanel> 
    <ComboBox ItemsSource="{Binding}"/> 
    <ComboBox ItemsSource="{Binding}"/> 
</StackPanel>