我无法扩展我在Windows词典中定义的一种样式。单独,似乎按预期将样式应用于我的控件。但是,如果尝试使用basedOn属性扩展我的一个userControl中的样式,它只会覆盖主要样式,并且所有基本样式都会消失。这是一个例子:
在资源字典中,名为dict1.xaml:
<Style TargetType="{x:Type Button}">
<Setter Property="Background" Value="Pink"/>
</Style>
在主窗口中.xaml:
<Window.Resources>
<ResourceDictionary Source="dict1.xaml"/>
</Window.Resources>
在名为userControl1.xaml的用户控件中:
<UserControl.Resources>
<Style BasedOn="{StaticResource {x:Type Button}}"
TargetType="{x:Type Button}">
<Setter Property="FontWeight" Value="Bold"/>
</Style>
</UserControl.Resources>
用户控件中的样式只是覆盖资源字典中的样式,字体为Bold。如果我删除用户控件中的样式,字典中的样式将启动并且背景变为粉红色。我想要两个。
我在这里做错了什么想法?
感谢。
答案 0 :(得分:1)
您需要将字典添加到UserControl资源,或将其添加到App.XAML资源。
实际上,UserControl无法解析那个StaticResource - 如果有意义的话,它就在UserControl的范围内,而不是窗口。