我在资源字典中定义了Button控件的自定义外观:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style TargetType="Button" x:Key="BaseButtonStyle">
<Setter Property="Background" Value="Blue"/>
</Style>
</ResourceDictionary>
然后我尝试更改按钮所在窗口的样式。
<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Dictionary.xaml"/>
<ResourceDictionary>
<Style TargetType="Button" BasedOn="{StaticResource BaseButtonStyle}">
<Setter Property="Foreground" Value="Red"/>
</Style>
</ResourceDictionary>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Window.Resources>
我在WPF设计器中得到了我所期望的:一个带有红色文本的蓝色按钮。但是在运行时,这两种样式都没有应用,按钮有默认颜色。我该如何解决这个问题?
1条答案
按热度按时间qncylg1j1#
下面这个可以用。我只是把样式从MergedDictionaries中移出来,放到了外部的ResourceDictionary中。
在您的原始XAML中,我不确定为什么设计器能够正确地呈现它,而WPF运行时却不能。
可能和这件事有关。