WPF中现有控件的控件模板
如何在WPF中以XAML格式(可视化树)获取现有控件的控件模板? 这有助于在现有模板的帮助下创建新的控制模板。
样式和模板示例在MSDN上可供下载,请参阅Default WPF Themes
链接 。
但是,您也可以扩展现有样式,而不使用BasedOn
属性重新定义所有内容。
退房StyleSnooper :
http://www.blogs.intuidev.com/image.axd?picture=2010/5/StyleSnooper_TN.png
它将为内置的控件转储标准样式(因此也是模板)。 您也可以加载包含WPF控件的特定DLL,并查看这些默认样式。
如果您有Expression Blend,您可以:
- 将控件拖到设计图面上
- 右键单击控件,然后选择编辑模板 – >编辑复制
当你这样做时,Blend将从控件中提取基本模板,并在文档/应用程序中明确声明它作为一个资源,然后可以根据自己的喜好进行编辑。 你可以做任何控制。
第15章中的“Matthew MacDonald编写的C#2008中的临WPF”一书中包含了一个控制模板浏览器。我相信您可以简单地从Apress网站下载示例代码。
你可以使用像ShowMeTheTemplate这样的工具
使用Microsoft Blend:在工具中将整个XAML代码粘贴到文件中,然后右键单击要感知的可视化树的控件:
选择选项:编辑模板,然后你去
XamlWriter类为您提供此功能。 如果controlName
是一个控件的名称,然后使用下面的代码片段,你可以在控件的模板的stringBuilder
对象中获得Xaml。 我猜测答案中提到的工具利用这个类。
var stringBuilder = new StringBuilder(); var xmlSettings = new XmlWriterSettings { Indent = true }; using (var xmlWriter = XmlWriter.Create(stringBuilder, xmlSettings)) { XamlWriter.Save(controlName.Template, xmlWriter); }