如何更改 ComboBox 的外观?

How do I change the skin of the ComboBox?

我的英语水平很差,因为我的母语不是英语。 希望大家理解。

我正在尝试创建支持皮肤的控件样式。 最近,我为ComboBox创建了一个样式,如下所示。

<Style TargetType="{x:Type ComboBox}" BasedOn="{StaticResource {x:Type ComboBox}}">

    <Setter Property="Background"  Value="Transparent" />
    <Setter Property="Foreground" Value="{DynamicResource ActiveTextBrush}"/>
    <Style.Triggers>
        <Trigger Property="IsEnabled" Value="false">
            <Setter Property="Foreground" Value="{DynamicResource InActiveTextBrush}"/>
        </Trigger>
        <Trigger Property="IsEnabled" Value="true">
            <Setter Property="Foreground" Value="{DynamicResource ActiveTextBrush}"/>
        </Trigger>
    </Style.Triggers>
</Style>

上面的代码显示了下面的结果。

很遗憾,结果不是我想要的。 我想把背景颜色涂成黑色,但上面的代码没有改变背景颜色。

我应该怎么做才能实现我的目标?

感谢您的阅读。

Microsoft 直接在文档中为 WPF 框架中的所有核心组件提供通用样式和模板。 Here is the link for ComboBox styles and templates.

您可以从那里获取 XAML 代码(包括底部的公共资源),根据需要在您的应用中进行调整,并将其添加到您自己的资源中,例如App.xaml 的资源。

(将 Blend 用于 Visual Studio 或 Visual Studio 自己的 extract style feature,是其他选项,但根据我的经验,我发现有时这些 quirks/issues使用生成的 XAML.)