摘要:我的全局「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