如何在Visual Studio中提取默认控件模板?

时间:2012-01-11 18:56:41

标签: wpf visual-studio xaml

我想知道如何使用Visual Studio提取(获取副本)给定控件的默认模板。我知道这可以通过Expression Blend(右键单击一个控件,“编辑模板” - >>“编辑副本...”)来完成,然后在我的Xaml中复制默认控件模板。但这可以用Visual Studio完成吗?

6 个答案:

答案 0 :(得分:75)

  

2015年更新并附有明确说明

在Visual Studio 2013中,只需几个简单的步骤即可获得控件的默认ControlTemplate

  1. 在WPF设计器中,选择相关控件,或将鼠标光标放在XAML中的相关控件上。

  2. F4 打开属性窗口。

  3. 打开其他类别以查找模板属性,或在窗口顶部的搜索字段中输入模板

  4. 点击 Template 字段右侧的小方块,然后选择转换为新资源... 选项:

  5. enter image description here

    1. 在弹出式对话框中,为要添加的新ControlTemplate命名,并决定要将其定义在何处:
    2. enter image description here

      1. 点击确定按钮。

答案 1 :(得分:33)

从Visual Studio - 右键单击​​控件,选择属性

在属性窗口中查找模板属性并右键单击它, 选择提取资源值

这将在XAML中创建模板的副本供您使用。

答案 2 :(得分:9)

为了更新这个问题,在VS 11中,XAML设计器允许您像Expression Blend一样执行此操作。

答案 3 :(得分:2)

据我所知,这是不可能的。但是,您可以使用Show Me The Template查看给定控件的默认模板。

答案 4 :(得分:1)

在VS19中,我无法通过属性来做到这一点。

但是,我能够在设计模式Edit TemplateEdit a Copy上右键单击控件。

答案 5 :(得分:0)

要记住的一件事:如果您已经在某个地方定义了一个定位给定控件的样式,那么所有上述选项都将被禁用。我在App.xaml文件中有以下代码:

<Application.Resources>
    <Style TargetType="Button">
        <Setter Property="IsTabStop" Value="False"/>
    </Style>
</Application.Resources>

我拉着我的头发试图找出为什么要编辑副本......&#34;和&#34;转换为新资源...&#34;我的Button(在一个完全不同的文件中定义)禁用了其他答案中描述的选项。我为Button注释了上面的样式代码,突然两个选项都不再被禁用了。故事的道德:如果代码中的任何地方已存在该元素的样式,VS将不会为您生成包含模板副本的样式。