Как увеличить отступ отображаемых элементов в выпадающем списке? - PullRequest
7 голосов
/ 25 июля 2010

Я хочу написать шаблон XAML для выпадающего списка, чтобы увеличить пробелы / отступы между элементами. Я искал это, но почти закончил с ItemsPresenter:

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

Как мне отформатировать элемент (рамку, отступ, шрифт ...) с помощью этого шаблона? Пожалуйста, помогите.

1 Ответ

10 голосов
/ 25 июля 2010

Вы можете использовать ItemContainerStyle , чтобы применить стиль к ComboBoxItems , который устанавливает такие свойства, как 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>

Если вы хотите, чтобы он применялся ко всемВ полях со списком вы можете вместо этого создать неявный стиль для ComboBoxItem в своих ресурсах:

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