摘要:我的全局“ContextMenu”样式不适用于文本框和其他控件的默认上下文菜单。WPF默认TextBox ContextMenu样式
细节:我的应用程序中有几个文本框没有明确的ContextMenu。所以,当你右键点击它们时,你会看到剪切,复制和粘贴的标准上下文菜单选项。但是,该上下文菜单并没有最终使用我在Generic.xaml中设置的全局“ContextMenu”风格。 TextBox上的默认上下文菜单实际上并不是ContextMenu?
如果我明确设置文本框的ContextMenu,那么菜单将使用我的全局ContextMenu样式。例如,这工作得很好:
<Style TargetType="{x:Type TextBox}">
<Setter Property="ContextMenu" Value="{StaticResource StandardContextMenu}"/>
</Style>
<ContextMenu x:Key="StandardContextMenu">
<MenuItem Header="Cut" Command="ApplicationCommands.Cut"/>
<MenuItem Header="Copy" Command="ApplicationCommands.Copy"/>
<MenuItem Header="Paste" Command="ApplicationCommands.Paste"/>
</ContextMenu>
但我真的不希望有刚刚创建这个完全是多余的文本菜单让WPF应用正确的风格。另外,除了TextBox之外,还有其他一些控件在单击时显示ContextMenus,而且它们也不会采用全局的ContextMenu样式。
那么,当我右键单击未定义明确的ContectMenu的TextBox时,实际显示的是什么?那东西不是一个ContextMenu吗?为什么它不使用全局的ContextMenu风格?
编辑: 展望这进一步使用史努比,我发现,当我明确地添加一个ContextMenu,它显示为文本菜单可视化树。但是显示的默认ContextMenu在可视树中显示为EditorContextMenu。接下来的问题是如何在全局上设置EditorContextMenu的样式。
事情自2010年以来可能发生了变化,但根据MSDN版主的回复,无法完成:https://social.msdn.microsoft.com/Forums/zh-CN/89860b05-b1b0-4248 -992a-5e5351c34ac1/how-can-i-changed-style-of-texteditorcontextmenu-editorcontetxmenu?forum = wpf – Bobby
你是怎么找到Snoop的?我看不到树的任何不可见的内容,所以没有上下文菜单。 – ygoe