我有一个在单独的资源字典中定义的样式的控件,并使用 generic.xaml 魔法来应用它。
如果我了解 msdn 上描述的查找机制(https://msdn.microsoft.com/de-de/library/ms750613%28v=vs.110%29.aspx),则在应用程序资源之后使用 generic.xaml,但是为 MyWindow 添加样式将导致来自 generic.xaml 的样式 + App.xaml 中定义的样式。
这是我的代码:
通用的.xaml
<ResourceDictionary ...>
<Style TargetType="{x:Type test:MyWindow}" BasedOn="{StaticResource ResourceKey={x:Type Window}}">
<Setter Property="Background" Value="Gainsboro" />
<Setter Property="Title" Value="Default!" />
</Style>
</ResourceDictionary>
应用程序.xaml
<Application.Resources>
<ResourceDictionary>
<Style TargetType="{x:Type test:MyWindow}" BasedOn="{StaticResource ResourceKey={x:Type Window}}">
<Setter Property="Background" Value="HotPink" />
</Style>
</Application.Resources>
该窗口将具有粉红色背景(来自 application.resource 样式)和“默认!” 作为 generic.xaml 样式的标题。
为什么 wpf 不停止在应用程序级别搜索样式?