.net - 默认上下文菜单样式 - WPF

标签 .net wpf contextmenu

我正在尝试修改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/

相关文章:

c# - TaskbarIcon 不会显示带有自定义图标的气球提示

当 ScrollBar 可见时,WPF ScrollViewer 显示边框

android - 如何在 Android 中创建带有单选按钮的子菜单?

c# - ContextMenuStrip 未正确调整大小

java - 如何在java中打印Windows控制台中选择的文件列表

mysql - .Net SQL查询中的动态表名?

c# - .Equals(N) 和 == N 的区别

c# - 为硬盘读写创建事件

c# - 中性文化如何映射到 CultureInfo.CreateSpecificCulture 方法中的特定文化?

c# - ListView 和枚举