默认MenuItem TopLevelHeader控件模板

时间:2010-12-29 04:10:37

标签: wpf wpf-controls

我在哪里可以获得MenuItem TopLevelHeader控件模板?样式菜单项的MSDN链接提供了修改后的模板。

alt text

我需要获取一个包含默认弹出/上下文菜单的控件模板。

2 个答案:

答案 0 :(得分:2)

Manny工具可用于stylesnooperShow Me The Template

之类的目的

但如果您有Microsoft Expression Blend,则可以通过

提取默认控件模板
  1. 将控件拖到设计上 表面
  2. 右键单击控件并选择 编辑模板 - >编辑副本
  3. 执行此操作时,Blend将从控件中提取基本模板,并在文档/应用程序中将其显式声明为资源,然后您可以根据自己的喜好进行编辑。

    查看此内容以获取更多信息

    http://www.shafqatahmed.com/2009/01/wpf-kid-stuff-extracting-a-control-template.html

答案 1 :(得分:1)

我无法使用Blend或常用工具来访问该控件模板,但您可以使用以下代码自行解压缩:

var controlTemplate = (ControlTemplate)FindResource(MenuItem.TopLevelHeaderTemplateKey);
var sb = new StringBuilder();
var xml = XmlWriter.Create(sb, new XmlWriterSettings { Indent = true, NewLineOnAttributes = true });
XamlWriter.Save(controlTemplate, xml);
var xaml = sb.ToString();
Debug.WriteLine(xaml);

输出太长,无法包含在这里。