在generic.xaml中定义的样式覆盖

3

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

1个回答

0

这个可以吗?

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

我的样式的键是字符串,而不是类型,因为模板中的样式应用于模板中的元素实例。 - Andy
使用 BasedOn="{StaticResource {x:Type YourCustomControl}}" 只是意味着它基于您控件的默认样式。您能发布一些您的样式示例吗? - Botz3000

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接