创建或修改模板
控件的外观由美工板上应用于控件的模板定义。模板包括控件内所包含的对象。例如, TextBox 的控件模板包含一个名为“Bd”的 Border 对象,而后者又包含一个名为“PART_ContentHost”的 ScrollViewer 对象。在对美工板上的 TextBox 应用该控件模板时, ScrollViewer 对象将显示 TextBox 的内容。
系统控件的默认模板使用动态主题,可根据应用程序运行在哪个 Windows 版本上来改变控件的外观。但是,如果修改系统控件的模板,则您的控件在所有版本上的外观都将一样。
有关详细信息,请参阅设置支持模板的控件的样式中的“主题”一节。
控件模板以资源的形式保存,可应用于同一类型的其他控件。
创建控件模板
在“对象和时间线”面板中或在美工板上,选择要从中创建控件模板的对象,然后执行下列操作之一:
在“对象”菜单中,指向“编辑模板”。
右键单击对象,然后指向“编辑模板”。
在美工板顶部的痕迹导航栏中,单击对象的名称。
在出现的下拉菜单中,执行下列操作之一:
若要创建一个新的空模板,请单击“创建空模板”。
若要基于当前正由选定对象使用的模板(无论该模板是对象的默认模板,还是先前创建的自定义模板)创建新模板,请单击“编辑副本”。
注意:
如果启用了“编辑当前模板”选项,则此对象已应用了模板。或者,您也可以选择编辑此模板。
此时,将显示“创建样式”对话框。这是因为控件模板存储在样式资源中。
在“名称(关键字)”下,执行下列操作之一:
若要为该对象创建新的命名样式,请键入关键字名称。其他对象可通过此名称引用该样式,从而应用该模板。
若要创建将由此类型的所有对象使用的样式,请选择“全部应用”。
提示:
在要创建的样式对象的 XAML 中,会将一个名为 TargetType 的属性设置为要为其创建样式的对象的类型。
只有键入了关键字名称(此步骤的第一个选项),才会设置 x:Key 属性。如果存在 x:Key 属性,则样式只能应用到通过关键字名称指定该样式的对象;如果没有 x:Key 属性,则能够将样式应用到此类型的所有对象。例如,以下代码示例中的样式对象将不会应用于美工板上的所有按钮。
<Style x:Key="ButtonStyle1" TargetType="{x:Type Button}"...
在“定义位置”下,选择选项以确定要定义样式的位置:
若要使应用程序中的任何文档都能使用该样式,请选择“应用程序”。
若要使样式只能由当前文档使用,请选择“此文档”,并从下拉菜单中选择一个选项。
若要在资源字典文件中定义可以在其他项目中重用的样式,请选择“资源字典”。接下来,可以在下拉菜单中选择现有的资源字典文件,或者通过单击“新建”以创建新的资源字典文件。
单击“确定”,以退出对话框并打开该样式以供编辑。
提示:
您可以在样式内高效地创建新的模板资源。该资源将成为本地资源,并且可以使用“资源”面板中的“编辑资源”按钮轻松进行查看和修改。
注意美工板顶部的 Microsoft Expression Blend 痕迹导航栏。
选定了模板编辑模式的痕迹导航栏
通过单击痕迹导航栏上的按钮,可以在选定对象的模板编辑模式、样式编辑模式和对象编辑范围之间快速切换。对于应用了自定义样式或模板的任何选定对象,都会显示痕迹导航栏。
通过添加或重新排列子对象对模板进行修改。
您可以执行下列操作之一,从而基于用户交互的结果来更改对象的外观或行为:
如果在 Windows Presentation Foundation (WPF) 项目中工作,请在“触发器”面板中选择触发器以启用触发器记录操作,然后对模板中的对象进行更改。如果所需的触发器不存在,您可以创建一个。例如,若要创建触发器来处理 Button 对象的单击,请单击“添加属性触发器”,将触发器设置为 IsPressed=True ,选择新的触发器,然后进行更改。
有关触发器的详细信息,请参阅使用触发器定义 WPF 控件的行为。
有关详细信息,请参阅 WPF 简单样式的样式提示。
小心:
更改控件模板的某些部分可能会破坏控件的功能。
有关准则,请参阅设置支持模板的控件的样式 中的“最佳实践”。
如果在 Microsoft Silverlight 项目中工作,请在“状态”面板中选择状态以启用状态记录操作,然后对模板中的对象进行更改。如果对象的类型支持部件,您可以将模板的部件分配给不同的对象。例如,您可以导入作品作为 Image 对象,然后将新对象转换为模板的部件。状态使用模板部件来更改对象的外观以响应用户交互操作。
有关详细信息,请参阅设置 Silverlight 控件模板部件的样式和常用 Silverlight 控件的样式提示。
若要进一步为对象添加交互性,您可以在“状态”面板中创建新状态,然后使用 GoToStateAction 行为,以便基于事件在状态之间切换。
有关详细信息,请参阅定义控件的不同视觉状态。
您可以编写将运行以响应事件的代码。在“属性”面板的“事件”视图中,双击事件名称旁边的输入字段,以便将事件处理程序方法添加到文档的代码隐藏文件。
有关详细信息,请参阅编写将对事件做出响应的代码。
若要退出样式的编辑范围,请在“对象和时间线”面板中单击“返回到范围”
。此操作会返回到文档的编辑范围。
提示:
请注意,为对象创建或应用样式资源后,将在“属性”面板中为 Style 属性显示绿色突出显示框,以指明该对象现已绑定或链接到此样式资源。
编辑现有的自定义模板
在美工板上或在“对象和时间线”面板中,单击某个对象以将其选中,然后执行下列操作之一:
在美工板顶部的痕迹导航栏中,单击第三个按钮。
在“对象”菜单上,指向“编辑模板”,然后单击“编辑当前模板”。
右键单击对象,指向“编辑模板”,然后单击“编辑当前模板”。
在“属性”面板中,单击 Style 属性(由于以前对此对象应用了样式,此属性应以绿色突出显示)旁边的“高级选项”
,然后在快捷菜单上单击“编辑资源”。处于样式的编辑范围中时,右键单击“对象和时间线”面板中的“Style”对象,指向“编辑模板”,然后单击“编辑当前模板”。
注意:
如果“编辑当前模板”选项处于禁用状态,则尚未对该对象应用任何模板。
提示:
您可以通过以下方式从模板编辑模式内快速绑定模板:在“属性”面板中要绑定到的属性旁边单击“高级选项”,然后单击“模板绑定”。
Expression Blend 将进入模板的编辑范围。
从“资源”面板中打开模板
在“资源”面板中,找到资源名,然后单击该名称旁边的“编辑资源”按钮。
Expression Blend 将进入样式的编辑范围。
处于样式的编辑范围中时,右键单击“对象和时间线”面板中的 Style 对象,指向“编辑模板”,然后单击“编辑当前模板”。
Expression Blend 将进入模板的编辑范围。
另请参阅
任务
概念
常用 Silverlight 控件的样式提示
WPF 简单样式的样式提示
Microsoft Corporation 版权所有 ⓒ 2011。保留所有权利。