我正在尝试修改WPF中ContextMenu的默认样式。
通常,您可以使用“编辑控制部件(模板)”>“编辑副本”菜单选项在 Expression Blend 中创建默认值的副本。但是我不知道如何使用上下文菜单来做到这一点。知道如何修改默认样式吗?
我试图禁用通常显示图标的上下文菜单的左侧。
谢谢!
更新:也许我不清楚删除图标。例如,如果您有一个没有图标的上下文菜单,那么菜单的整个左侧都是浪费的空间。我想修改上下文菜单背景的默认样式以删除它。只是我不知道如何访问这个默认样式。
最佳答案
对于无法通过表达式接口(interface)访问的模板和样式(例如 ContextMenu 模板),您可以使用以下代码来提取模板:
Dim sb As System.Text.StringBuilder = New System.Text.StringBuilder
Using Writer As TextWriter = New StringWriter(sb)
System.Windows.Markup.XamlWriter.Save(ContextMenu.Template, Writer)
End Using
Debug.Write(sb.ToString)
或者在 C# 中
var str = new StringBuilder();
using (var writer = new StringWriter(str))
XamlWriter.Save(ContextMenu.Template, writer);
Debug.Write(str);
关于.net - 默认上下文菜单样式 - WPF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/641634/