#1 楼
2015年更新,其中有明确的说明
在Visual Studio 2013中,您可以通过几个简单的步骤获得控件的默认
ControlTemplate
。在WPF设计器中,选择相关控件,或将鼠标光标放在XAML中的相关控件上。
按F4键打开“属性”窗口。
打开“杂项”类别以找到“模板”属性,或在“窗口”顶部的搜索字段中键入“模板”。在“模板”字段的右侧,然后选择“转换为新资源...”选项:
在弹出对话框中,将新的
ControlTemplate
命名为添加并决定要在何处定义它:单击“确定”按钮。
#2 楼
在Visual Studio中-右键单击控件,选择属性,在属性窗口中查找“模板属性”,然后右键单击它,
选择“将值提取到资源”
这将在XAML中创建模板的副本,供您使用。
评论
当我在文本框上执行此操作时,Template属性被禁用,因此无法右键单击它。
–杰夫·科图拉
2014年4月3日14:09
@Jeff:在设计器窗口(不在Xaml代码中)上右键单击您的元素,然后单击“编辑模板...”和“编辑副本...”
– Pollitzer
15年11月15日在11:18
#3 楼
只是为了更新此问题,在VS 11中,XAML设计器允许您像Expression Blend一样执行此操作。评论
VS 2012版本仍然如此。
– codekaizen
2012年12月4日,下午2:26
#4 楼
要记住的一件事:如果您已经在某个位置定义了一种样式,该样式以给定控件为目标,则上述所有选项都将被禁用。我的App.xaml文件中包含以下代码:<Application.Resources>
<Style TargetType="Button">
<Setter Property="IsTabStop" Value="False"/>
</Style>
</Application.Resources>
我想弄清楚为什么
edit a copy...
和convert to new resource...
选项说明了为什么我的Button(在完全不同的文件中定义)的其他答案被禁用。我注释掉了上面Button的样式代码,然后突然两个选项都不再被禁用。 故事的寓意:如果代码中任何位置的元素已经存在样式,则VS不会为您生成包含模板副本的样式。
#5 楼
据我所知这是不可能的。但是,您可以使用“向我显示模板”查看给定控件的默认模板。评论
我曾经使用“向我显示模板”,但发现模板有时会缺少某些功能,因此改用了MSDN上的模板
–雷切尔(Rachel)
2012年1月11日在21:20
链接现在已断开
–德雷克
18-10-24在9:26
#6 楼
在VS19中,我无法通过属性来执行此操作。但是,我能够在设计模式
Edit Template
和Edit a Copy
上右键单击控件。
评论
谢谢!当我需要获取DatePickerTextBox的控件模板时,这确实帮了我大忙,这样我就可以删除烦人的内部边框。
–马特·贝克尔
2015年5月8日14:44
这真的很棒-谢谢!您是否知道是否可以类似地提取完整样式?在样式属性上禁用了“转换为新资源”命令。
–安德鲁·汉隆(Andrew Hanlon)
15年11月24日在14:03
@AndrewHanlon,您当时正在运行解决方案吗?我认为这是导致“转换为新资源”按钮被禁用的唯一原因。
–谢里登
15年11月24日在14:43
该控件消失了,因为VS插入了一个空模板:
–
16-4-11的21:00
这些说明也适用于VS2017。
–itsho
17年9月12日在14:44