How to increase the filling of displayed combobox items?

I want to write a XAML template for combobox to increase the spaces / indents between elements. I searched for this but almost finished with ItemsPresenter:

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

How can I format an element (border, padding, font ...) using this template? Please, help.

+7
templates wpf xaml combobox itemscontrol
source share
1 answer

You can use ItemContainerStyle to apply a style to ComboBoxItems that sets properties such as 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> 

If you want it to apply to all combo boxes, you could instead create an implicit style for ComboBoxItem in your resources:

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

All Articles