Style
(适用于Silverlight)中的自定义ControlTemplate
我有一次HyperLinkButton
和相应的Blend 4
。
Blend的文档说:
控件模板包含在里面 风格使那样的风格 应用于控件包括两者 外观(部分)和行为 为了控制。 (from here)和(also here)
所以我点击画板上的HyperlinkButton
,然后选择Object > Edit Template > Edit a copy
,我得到:
<HyperlinkButton Template="{StaticResource HyperlinkButtonControlTemplate}"/>
好吧那没有包裹在风格中的是它!
所以我重新开始并尝试使用Object > Edit Style > Edit a copy
创建一个样式,这样可以为我提供一种新样式,但没有模板(正如预期的那样):
<Style x:Key="HyperlinkButtonStyle2" TargetType="HyperlinkButton">
<!--Setter Property="TargetName" Value="_new"/-->
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="Foreground" Value="Blue"/>
<Setter Property="Padding" Value="0"/>
</Style>
现在我的样式没有控件模板。然后我在Styles.xaml
中选择该样式并执行Edit Template > Edit a copy
,并在样式中添加一个链接的ControlTemplate:
<Style x:Key="HyperlinkButtonStyle2" TargetType="HyperlinkButton">
<!--Setter Property="TargetName" Value="_new"/-->
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="Foreground" Value="Blue"/>
<Setter Property="Padding" Value="0"/>
<Setter Property="Template" Value="{StaticResource HyperlinkButtonControlTemplate2}"/>
</Style>
但Blend 4的文档说它将在一个样式中创建,但事实并非如此。我绝对认为这更灵活,但它不是我想要的,因为我不想重复使用它,我想知道这是可配置还是我遗漏了什么。
SO:我可以让Blend 4同时创建Style
和嵌套ControlTemplate
,还是必须手动将ControlTemplate
移动到Style
}吗
答案 0 :(得分:1)
这完全取决于你的模式。
如果您遵循样式和模板创建的特定顺序,则模板会嵌入样式中。例如,创建一个按钮并执行对象&gt;编辑样式&gt;如果已将样式附加到按钮,则创建空(或编辑当前)。您处于样式编辑模式。现在,在样式编辑模式下,选择对象&gt;编辑模板并创建空模板或复制模板。它将与风格联系起来。这是您要遵循的两步流程。
但是,如果您不在样式编辑模式,则选择对象&gt;修改模板&gt;复制立即创建带有链接模板的样式。