Wpf 为什么资源风格不是';t应用于分隔符,但直接应用于样式工作?
我喜欢@code裸体,但不知何故,我正努力将它应用到Wpf 为什么资源风格不是';t应用于分隔符,但直接应用于样式工作?,wpf,xaml,Wpf,Xaml,我喜欢@code裸体,但不知何故,我正努力将它应用到菜单分隔符。它不应用我在资源中定义的样式 这是我的密码: 如果我在分隔符上显式设置样式,它会工作 你知道为什么它在第一种情况下不起作用吗?将你的风格替换为: <Style x:Key="{x:Static MenuItem.SeparatorStyleKey}" TargetType="Separator" BasedOn="{StaticResource {x:Static ToolBar.SeparatorStyleKey}}
菜单
分隔符。它不应用我在资源中定义的样式
这是我的密码:
如果我在分隔符
上显式设置样式
,它会工作
你知道为什么它在第一种情况下不起作用吗?将你的风格替换为:
<Style x:Key="{x:Static MenuItem.SeparatorStyleKey}" TargetType="Separator" BasedOn="{StaticResource {x:Static ToolBar.SeparatorStyleKey}}" />
有关以下信息,请参阅MSDN文档:
创建带有分隔符的菜单时,控件将自动
应用MenuItem.SeparatorStyleKey标识的样式
属性。样式放置在资源字典中,是
按其键搜索。更改内部分隔符样式的步骤
对于菜单,必须使用MenuItem.SeparatorStyleKey属性来创建
你的新风格
因此,分隔符的资源样式将从控件中被重写,如果它直接放在控件中,则不会被重写。但它是否适用于MenuItem
呢?MenuItem的样式有效。为什么在WPF中设置样式不一致?为什么他们需要为分隔符类使用此特殊规则?我不知道是否有任何原因。