我在哪里可以找到默认的WPF控件模板?

时间:2010-08-23 14:07:55

标签: wpf styles controltemplate gridviewcolumn

根据此MSDN链接,

  

没有办法只替换部分   对照的可视树;至   更改控件的可视树   你必须设置的Template属性   控制到它的新的和完整的   的ControlTemplate

我正在尝试禁用GridViewColumnHeader的点击行为(我需要删除原始控件模板中的一些触发器),但我无法找到本机“ColumnHeaderContainerStyle”。我发现的所有人似乎已经做了一些定制,很难获得原始的外观和感觉。

有人可以建议我如何/在哪里可以获得原生WPF控件中定义的原始控件模板?

感谢您的关注。

5 个答案:

答案 0 :(得分:19)

在Visual Studio 2015(至少)中,您可以右键单击XAML设计器中的控件,然后选择"编辑样式 - >编辑副本"查看和编辑控件的默认模板。比打开Blend,下载样式查看器或搜索网络容易得多。

答案 1 :(得分:18)

您可以找到所有主题here at MSDN的模板。

(该链接应该直接带您到页面上的正确位置。整个页面加载后(可能需要几秒钟),“主题”部分应该在浏览器内容的顶部。)

编辑:上面的链接似乎不再有用了。请参阅in the post by McGarnagle给出的链接。

此外,有几种工具可以从装配中读取样式。例如,您可以使用Style Snooper。但是,对于您的方案(获取内置模板),上述MSDN链接应该是最简单的。

答案 2 :(得分:15)

我几次通过谷歌来到这个问题,看不到我想要的链接,所以这里是......


这些链接对于每个框架控件都有以下信息:

  • 命名模板部件
  • 视觉状态
  • 完整XAML默认控制模板和资源

答案 3 :(得分:1)

长话短说,这似乎是当今的链接:

https://docs.microsoft.com/en-us/dotnet/framework/wpf/controls/button-styles-and-templates

(我从该页面复制了按钮的模板,确实确实是一个模板。)

答案 4 :(得分:0)

就像this blog post所说的那样,使用以下代码(调用一次)并读取输出文件(defaultTemplate.xml):

public static void SaveDefaultTemplate()
        {
            var control = Application.Current.FindResource(typeof(DataGridCell));
            using (XmlTextWriter writer = new XmlTextWriter(@"defaultTemplate.xml", System.Text.Encoding.UTF8))
            {
                writer.Formatting = Formatting.Indented;
                XamlWriter.Save(control, writer);
            }
        }

我认为这是最好的方法。 无法通过Visual Studio调整提取诸如DataGridCell之类的某些元素:Properties> Template> Convert to New Resource...,因为您不能显式定义任何DataGridCell。