Wpf 为什么资源风格不是';t应用于分隔符,但直接应用于样式工作?

Wpf 为什么资源风格不是';t应用于分隔符,但直接应用于样式工作?,wpf,xaml,Wpf,Xaml,我喜欢@code裸体,但不知何故,我正努力将它应用到菜单分隔符。它不应用我在资源中定义的样式 这是我的密码: 如果我在分隔符上显式设置样式,它会工作 你知道为什么它在第一种情况下不起作用吗?将你的风格替换为: <Style x:Key="{x:Static MenuItem.SeparatorStyleKey}" TargetType="Separator" BasedOn="{StaticResource {x:Static ToolBar.SeparatorStyleKey}}

我喜欢@code裸体,但不知何故,我正努力将它应用到
菜单
分隔符。它不应用我在
资源中定义的
样式

这是我的密码:


如果我在
分隔符
上显式设置
样式
,它会工作



你知道为什么它在第一种情况下不起作用吗?

将你的风格替换为:

<Style x:Key="{x:Static MenuItem.SeparatorStyleKey}" TargetType="Separator" BasedOn="{StaticResource {x:Static ToolBar.SeparatorStyleKey}}" />

有关以下信息,请参阅MSDN文档:

创建带有分隔符的菜单时,控件将自动 应用MenuItem.SeparatorStyleKey标识的样式 属性。样式放置在资源字典中,是 按其键搜索。更改内部分隔符样式的步骤 对于菜单,必须使用MenuItem.SeparatorStyleKey属性来创建 你的新风格


因此,分隔符的资源样式将从控件中被重写,如果它直接放在控件中,则不会被重写。

但它是否适用于
MenuItem
呢?MenuItem的样式有效。为什么在WPF中设置样式不一致?为什么他们需要为
分隔符
类使用此特殊规则?我不知道是否有任何原因。