Expression Blend 4是否不再自动在Style中嵌套新的ControlTemplate?

时间:2010-08-07 00:48:08

标签: expression-blend

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 }吗

1 个答案:

答案 0 :(得分:1)

这完全取决于你的模式。

如果您遵循样式和模板创建的特定顺序,则模板会嵌入样式中。例如,创建一个按钮并执行对象&gt;编辑样式&gt;如果已将样式附加到按钮,则创建空(或编辑当前)。您处于样式编辑模式。现在,在样式编辑模式下,选择对象&gt;编辑模板并创建空模板或复制模板。它将与风格联系起来。这是您要遵循的两步流程。

但是,如果您不在样式编辑模式,则选择对象&gt;修改模板&gt;复制立即创建带有链接模板的样式。