2010-07-25 13 views
6

Voglio scrivere il modello XAML di una casella combinata per aumentare gli spazi/il riempimento tra gli elementi. Ho cercato per questo, ma quasi alla fine con l'ItemsPresenter:Come aumentare il riempimento degli elementi visualizzati nella casella combinata?

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

Come posso formattare l'oggetto (confine, padding, font ...) utilizzando questo modello? Per favore aiuto.

+0

Anche io ne ho bisogno! In attesa di sentire da tutti voi ragazzi. –

risposta

8

È possibile utilizzare ItemContainerStyle per applicare uno stile al ComboBoxItems che imposta le proprietà come 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> 

Se si desidera applicare a tutti i caselle combinate, si potrebbe invece creare uno stile implicito per ComboBoxItem in le vostre risorse:

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