0

我在资源字典中有一种风格

<Style x:Key="heading" TargetType="Label">
    <Setter Property="FontSize" Value="26" />
</Style>

我希望分配它来控制是否满足某些触发条件。例如

<Style TargetType="Label">
    <Style.Triggers>

        <Trigger Property="Tag" Value="header" >
            <Setter Property="FontSize" Value="26" />
        </Trigger>

    </Style.Triggers>
</Style>

工作正常

<Style TargetType="Label">
    <Style.Triggers>

        <Trigger Property="Tag" Value="header" >
            <Setter Property="Style" Value="{StaticResource heading}" />
        </Trigger>

    </Style.Triggers>
</Style>

给出一个错误,即 Style 触发器无法更改关联目标的 Style 属性,这很有意义,但有解决方法吗?

4

1 回答 1

0

诀窍是将触发器放入资源字典而不是 Style 中

<Style TargetType="Label">
    <Style.Triggers>
        <StaticResource ResourceKey="headerTrigger"/>
    </Style.Triggers>
</Style>

并像这样在资源字典中定义触发器

<Trigger x:Key="headerTrigger" Property="Label.Tag" Value="header" >
    <Setter Property="Label.FontWeight" Value="Bold"/>
    <Setter Property="Label.BorderBrush" Value="Red"/>
    <Setter Property="Label.BorderThickness" Value="2"/>
</Trigger>
于 2013-04-10T10:31:13.533 回答