【问题标题】:Overriding styles defined in generic.xaml覆盖 generic.xaml 中定义的样式
【发布时间】:2010-12-02 06:52:16
【问题描述】:

我有一个自定义控件库,我在其中定义了一个使用一些自定义样式的控件模板。我的控件模板位于 Generic.xaml 文件中,它使用的样式也位于那里,并由带有 StaticResource 标记扩展名的控件模板访问。
在某些情况下,当我使用这个控件库时,我想更改一些使用模板的样式,但我不知道该怎么做。
我想如果我向我的 Window 的资源字典添加一个带有名称的样式,该样式由模板使用,我的样式将“覆盖”在 Generic.xaml 文件中定义的样式,但它不起作用。 我该怎么办?

【问题讨论】:

    标签: wpf xaml generic.xaml


    【解决方案1】:

    这行得通吗?

    <Style TargetType="{x:Type YourCustomControl}" 
           BasedOn="{StaticResource {x:Type YourCustomControl}}">
        <Setter Property="SomeStylePropertyOfYourCustomControl" 
                Value="{StaticResource SomeStyleYouWantToUseInstead}"/>
    </Style>
    

    【讨论】:

    • 我的样式的键是字符串,而不是类型,因为我模板中的样式应用于模板中的元素实例。
    • using BasedOn="{StaticResource {x:Type YourCustomControl}}" 只是意味着它基于控件的默认样式。你能发布一些你的风格的例子吗?
    猜你喜欢
    • 1970-01-01
    • 2018-05-08
    • 2017-12-23
    • 2019-10-31
    • 2014-04-14
    • 1970-01-01
    • 1970-01-01
    • 2014-07-18
    • 1970-01-01
    相关资源
    最近更新 更多