代码之家  ›  专栏  ›  技术社区  ›  David Veeneman

如何获取WPF4.0控件默认模板?[副本]

  •  10
  • David Veeneman  · 技术社区  · 15 年前

    我一直在使用ExpressionBlend复制WPF4.0控件的默认模板。我正在写一篇关于扩展WPF控件的CodeProject文章,我想推荐一个免费的工具作为替代。你有什么建议?谢谢你的帮助。

    6 回复  |  直到 15 年前
        1
  •  5
  •   CodeNaked    15 年前

    在WPF的早期版本中,这些样式在这里是可用的 MSDN 链接。您可以尝试更改为旧版本,以查看下载链接。不幸的是,它还没有为.NET4.0更新。

    在那之前,如果你能用反射器 BamlViewer

    1. 第表示框架.Aero
    2. 第表示框架。Luna

    确保选择4.0.0.0版本。然后展开程序集和关联的资源节点。选择资源条目并按空格键以查看反汇编程序。然后您可以看到BAML文件,您可以使用BamlViewer查看XAML。唯一的缺点是你失去了原来的格式。

    编辑:

    .NET 4样式可从 here Default WPF Themes 第二段的链接。或者,您可以钻取特定控件以查看样式示例。

        2
  •  8
  •   ASanch    15 年前

    XamlPadX 有一个按钮“打开/关闭样式窗口”,显示一个小对话框,允许您查看样式。

    alt text

        3
  •  3
  •   Adam Sills    15 年前

    MSDN为Silverlight控件列出了它们:
    http://msdn.microsoft.com/en-us/library/cc278069(VS.95).aspx

    但是我找不到类似的WPF控件列表。相应的WPF页面是这样的,并且神秘地缺少一个模板列表:
    http://msdn.microsoft.com/en-us/library/ms753328.aspx

    不管怎样,获取模板很容易。从这里开始:
    http://msdn.microsoft.com/en-us/magazine/cc163497.aspx#S1

    Control ctrl = GetControl(); // any type deriving from Control
    
    XmlWriterSettings settings = new XmlWriterSettings();
    settings.Indent = true;
    settings.IndentChars = new string(' ', 4);
    settings.NewLineOnAttributes = true;
    StringBuilder strbuild = new StringBuilder();
    XmlWriter xmlwrite = XmlWriter.Create(strbuild, settings);
    
    // Save the template to the XAML writer
    XamlWriter.Save(ctrl.Template, xmlwrite);
    
        4
  •  3
  •   David Veeneman    15 年前

    现在可以找到WPF4.0控件的控件模板 here .

    但是,通过使用 Style.BasedOn this blog post .

        5
  •  0
  •   Michael Detras    15 年前

    请看这篇文章: http://eggheadcafe.com/tutorials/aspnet/d1ad0a33-d815-4083-8e97-c234fd661095/wpf-controls-default-style-or-template-by-extending-the-wpf-designer-in-visual-studio-2010.aspx . 我已经扩展了WPF设计器,包括通过所选控件的上下文菜单获取默认样式或模板。只需构建visualstudio解决方案并设置注册表项以加载元数据。缺点是XAML格式不同于expressionblend。

        6
  •  0
  •   g t Omri Btian    12 年前

    C:\Program Files\Microsoft Expression\Blend 4\SystemThemes\Wpf