当前位置:  开发笔记 > 编程语言 > 正文

默认ContextMenu样式 - WPF

如何解决《默认ContextMenu样式-WPF》经验,为你挑选了2个好方法。

我试图修改WPF中ContextMenu的默认样式.

通常,您可以使用"编辑控件"(模板)>"编辑复制"菜单选项在Expression Blend中创建默认值的副本.但是我无法解决如何使用ContextMenu执行此操作.知道我怎么能修改默认样式?

我试图禁用上下文菜单的左侧,通常显示图标.

谢谢!

更新: 也许我不清楚删除图标.例如,如果您有一个没有图标的上下文菜单,那么菜单的整个左侧就是浪费的空间.我想修改上下文菜单背景的默认样式以删除它.我只是不知道如何访问此默认样式.



1> Luke..:

对于无法通过Expression 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);


请注意,为了在ContextMenu中获取模板,您必须至少向其Items集合添加一个MenuItem.否则ContextMenu.Template为null.

2> dex3703..:

我找到了在Blend中获取ContextMenu模板的简单方法:

    我在一个带有一些菜单项的按钮中添加了一个ContextMenu.

    在属性窗格中的"杂项"下,有一个ContextMenu的分组项.

    打开这个.您将找到常用的样式和模板属性.

    单击弹出菜单的方块,然后选择转换为新资源...

而已.选择您希望放置模板/样式的位置,然后就完成了.

这是我的标记:


    

我得到的风格/模板:


                    
                
            
        
    

希望这可以帮助.在通常的MS彻底性中,找不到默认样式的画笔.:)


似乎不是一个完整的XAML.'ContextMenuControlTemplate1'的定义在哪里?
推荐阅读
臭小子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有