【问题标题】:How to override template WPF如何覆盖模板 WPF
【发布时间】:2019-03-10 14:21:59
【问题描述】:

我需要在 ComboBox WPF 中更改颜色。为此,我尝试覆盖模板。 但是如果我这样做

<ComboBox.Template>
            <ControlTemplate>
                <Themes:SystemDropShadowChrome Color="Red"/>
            </ControlTemplate>
</ComboBox.Template>

只是做了一个什么都不做的红魔方。ComboBox的其他所有属性都丢失了。那么如何覆盖模板来改变颜色并保存ComboBox的属性呢?

【问题讨论】:

    标签: .net wpf xaml


    【解决方案1】:

    你试过了吗?

    <Setter Property="OverridesDefaultStyle" Value="true" />
    

    【讨论】:

      【解决方案2】:

      您需要提供一个新模板,而不仅仅是一行。

      在此处查看模板:

      https://docs.microsoft.com/en-us/dotnet/framework/wpf/controls/combobox-styles-and-templates

      【讨论】:

        【解决方案3】:

        根据微软的UG

        没有办法只替换控件的可视化树的一部分;要更改控件的可视化树,您必须将控件的 Template 属性设置为其新的完整 ControlTemplate。

        您需要描述控件的整个模板。以下是获取控件的完整默认模板的方法:How to Extract Default Control Template In Visual Studio?

        【讨论】:

          猜你喜欢
          • 2023-01-26
          • 2011-07-08
          • 2014-05-22
          • 2017-09-03
          • 2018-12-16
          • 2018-02-20
          • 1970-01-01
          • 2018-06-02
          • 2016-05-18
          相关资源
          最近更新 更多