这个问题已经在这里有了答案: > How to Extract Default Control Template In Visual Studio? 5个
显然,默认的控制模板以二进制形式存在于我们作为每个项目的“引用”添加的不同DLL中.
它们是否以ASCII /源形式存在于某处?有空吗?
TIA
解决方法:
有免费工具可用于探索默认wpf控件的模板,例如Show Me The Template!(还有用于控制样式的工具,请参见StyleSnooper).
另外,您可以使用以下内容探索模板:
private string getTemplate(Control control)
{
StringBuilder stringBuilder = new StringBuilder();
XmlWriterSettings xmlSettings = new XmlWriterSettings();
xmlSettings.Indent = true;
using (XmlWriter xmlWriter = XmlWriter.Create(stringBuilder, xmlSettings))
{
XamlWriter.Save(control.Template, xmlWriter);
}
return stringBuilder.ToString();
}