为什么我的隐式ContextMenu样式不会覆盖TextBox上下文菜单样式?
我从这个站点获取了ContextMenu
隐式样式:
然后我尝试在这里使用它,因此它应用于TextBox
的默认ContextMenu
和我为Button
添加的ContextMenu
。
Test
样式应用于Button
,但不应用于TextBox
。
我觉得这应该是相当简单和简单的,为什么我的隐式样式不能应用于TextBox
的默认ContextMenu
,我做错了什么?
== ==更新
我目前还不确定答案,但我认为这里的问题是使用ContextMenu
设计TextBox
一些缺陷,我希望有更多知识渊博的人能够证实。 使用Snoop我可以看到ContextMenu
不是你期望的对象,而是一个EditorContextMenu
对象,它是内部的,所以你不能设置它的样式。 他们为什么要这样用? 我不知道。
作为解决方法,我创建了一个默认的上下文菜单并使用它。 如果向TextBox
添加上下文菜单,则它会正确地采用隐式样式。 既然您知道默认ContextMenu
具有的项目,并且这些项目依次使用ApplicationCommands,则非常简单:
然后在TextBoxStyle中执行:
这样你的TextBox
的默认ContextMenu
将采用隐式样式。