C#WPF组合框中的背景颜色

时间:2016-06-07 15:49:20

标签: c# wpf xaml

在Windows上,可以更改UI元素使用的各种颜色(抱歉,我在工作时只有法语窗口):

Windows colours dialog

通过在C#WPF应用程序中使用全局样式,无论我在上面的对话框中选择哪种颜色,我都确保各种UI元素始终使用相同的颜色。

例如,我们为组合框提供了以下全局样式:

<Style  TargetType="{x:Type ComboBoxItem}">
    <Setter Property="Background" Value="White" />
    <Setter Property="Foreground" Value="{StaticResource ControlDefaultForegroundBrush}" />
</Style>

<Style TargetType="{x:Type ComboBox}">
    <Setter Property="Foreground" Value="{StaticResource ControlDefaultForegroundBrush}" />
    <Setter Property="FocusVisualStyle" Value="{DynamicResource ComboBoxFocusVisualStyle}" />
    <Style.Resources>
        <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="{StaticResource ComboBoxSelectionBackgroundColor}" />
        <SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="White" />
    </Style.Resources>
</Style>

所以我玩了修改所有颜色:

Modified colours

我们总是为组合框获得相同的颜色:

OK comboboxes

然后我决定通过选择以下主题进行测试:

Selection a Windows theme

我现在遇到以下问题:

Bad comboboxes

对于组合框,选择项目但未选择项目时背景系统颜色的名称是什么?在此示例中,背景颜色为黑色而不是灰色(具有3D效果)。

使用全局样式可以摆脱这种背景颜色吗? 请注意,显示组合框项目时,我们的全局样式仍然有效。项目背景/前景色和高亮颜色仍然正常:

Styles still working for items

0 个答案:

没有答案