Как установить стиль comboBox внутри WPF DataGrid? - PullRequest
0 голосов
/ 31 января 2011

У меня есть DataGrid, содержащий некоторые DataGridComboBoxColumns.

Я бы хотел, чтобы в комбинированных списках внутри этих столбцов применялся определенный стиль.

поэтому я попытался добавить следующее в ресурсы моей DataGrid:

<Style x:Key="{x:Type ComboBox}" TargetType="{x:Type ComboBox}">
    <Setter Property="SnapsToDevicePixels" Value="true"/>
    <Setter Property="OverridesDefaultStyle" Value="true"/>
    <Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto"/>
    <Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto"/>
    <Setter Property="ScrollViewer.CanContentScroll" Value="true"/>

    <Setter Property="Background" Value="{StaticResource DefaultBackgroundBrush}"/>
    <Setter Property="BorderBrush" Value="{StaticResource DefaultBorderBrush}"/>
    <Setter Property="Foreground" Value="{StaticResource DefaultForegroundBrush}"/>
    <Setter Property="FontFamily" Value="{StaticResource DefaultFontFamily}"/>
    <Setter Property="FontSize" Value="{StaticResource DefaultFontSize}"/>
    <Setter Property="Padding" Value="2"/>
</Style>

вообще ничего не делает.

достаточно удивительно, если я добавлю:

<Style x:Key="{x:Type ComboBoxItem}" TargetType="ComboBoxItem">
    <Setter Property="SnapsToDevicePixels" Value="true"/>
    <Setter Property="OverridesDefaultStyle" Value="true"/>
    <Setter Property="Foreground" Value="Red"/>
</Style>

Элементы comboBoxItem внутри этих же комбинированных списков получат красный цвет переднего плана.

так что в принципе я не могу установить стиль comboBox внутри моей dataGrid, но я могу установить стиль comboBoxItems внутри тех же comboBox.

довольно удивительно ...

Кто-нибудь знает, что здесь происходит и как я могу решить мою проблему?

спасибо

1 Ответ

1 голос
/ 31 января 2011

Что именно это должно делать?x:Key="{x:Type ComboBox}"

Вы не должны назначать клавиши, если хотите, чтобы стили применялись ко всем элементам управления в поддереве.

Редактировать: Чтобы применить стили к комбинированным спискам,необходимо настроить свойства DataGridComboBoxCotlumn.ElementStyle и DataGridComboBoxColumn.EditingElementStyle.

...