【问题标题】:.NET 4 control default templates without Blend.NET 4 控制没有 Blend 的默认模板
【发布时间】:2011-10-31 21:41:08
【问题描述】:

人们在无法使用 Expression Blend 时如何找到 .NET 控件的默认模板?

到目前为止,当我需要 WPF 控件的模板时,我去了 Codeplex 上的 WPF 项目页面,浏览了源代码,通常在“Generic.xaml”文件中找到默认模板。

但现在我正在寻找“框架”控件的默认模板。我在 Codeplex 上找不到,在 MS 提供的 .NET 框架源中也没有看到(不提供 XAML 文件,只有 .cs 文件)。

Style Snooper 工具提供了一个默认模板,但它似乎是逆向工程(不必要的冗长和引用内部类),而不是原始的干净定义。

那么,穷人如何获得这些模板?

【问题讨论】:

  • 获取表情混合。无论如何,它是您 MSDN 订阅的一部分。
  • 购买 Visual Studio 后,您会自动获得 MSDN 订阅?
  • 不,但考虑到价格差异,购买视觉工作室毫无意义。但是一个不错的 MSDN 订阅。
  • 我不负责在我的公司购买软件,但出于好奇,我查看了价格(韩国,以韩元为单位)。 VS Pro(我目前使用的)是 999,000,而带有 MSDN 的 VS Premium(包括 Expression 的最低版本)是 7,414,000!问题是当你不富有时如何发展:)

标签: .net wpf datatemplate


【解决方案1】:

1)您可以获取默认模板并将其序列化为文件。

var resource = Application.Current.FindResource(typeof(Control_Under_Interest));
using (XmlTextWriter writer = new XmlTextWriter(file_name, System.Text.Encoding.UTF8))
{
    writer.Formatting = Formatting.Indented;
    XamlWriter.Save(resource, writer);
}

2) 带有Baml Viewer 的反射器可用于从程序集中获取资源字典。

3)dotPeek 1.1支持BAML反汇编。

【讨论】:

  • 感谢 Yurec。解决方案 1 提供了一个很好的输出,比 Style Snooper 更简洁和干净。至于解决方案 2,Reflector 不再是免费产品,所以我会坚持解决方案 1。
【解决方案2】:

here 是来自 zebi 的 .Net4.0 链接。

【讨论】:

  • 谢谢你们俩的回答。但是我之前发现过这些页面,它们仅显示样式和模板的示例,而不是默认的示例。在我的装有 WinXP SP3 和 .NET 4 的机器上,默认框架导航 UI 看起来像 IE7)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-08
  • 2021-05-05
  • 2011-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多