【问题标题】:How do I change the skin of the ComboBox?如何更改 ComboBox 的皮肤?
【发布时间】:2023-04-10 19:09:01
【问题描述】:

我的英语水平很差,因为我不是以英语为母语的人。 希望你能理解。

我尝试创建支持皮肤的控件样式。 最近,我为 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>

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

很遗憾,结果不是我想要的。 我想将背景颜色绘制为黑色,但上面的代码不会改变背景颜色。

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

感谢您的阅读。

【问题讨论】:

  • 1.打开“为 Visual Studio 混合”。 2. 打开目标控件的设计器。 3. 注释掉与目标控件相关的任何现有样式和模板。 4. 选择该控件,或在编辑器中选择 xaml 节点。 5.点击设计器左上角的按钮-“编辑模板”-“创建克隆”
  • 你应该为你的组合框创建一个模板,就像这个链接stackoverflow.com/a/22696386/9809143
  • 哦...好的,我明白了。我必须新创建一个模板。谢谢你的回答。

标签: wpf combobox themes skin


【解决方案1】:

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

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

(使用 Blend for Visual Studio 或 Visual Studio 自己的 extract style feature 是其他选项,但根据我的经验,我发现有时这些对生成的 XAML 有一些怪癖/问题。)

【讨论】:

  • 感谢您的建议。我用这种方式解决了这个问题。
猜你喜欢
  • 1970-01-01
  • 2015-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-28
  • 1970-01-01
  • 1970-01-01
  • 2016-05-25
相关资源
最近更新 更多