0

我正在尝试在我的ToggleButton. 这是我的ToggleButton

<ToggleButton Template="{StaticResource OnTemplate}" IsChecked="True" >
    <ToggleButton.Style>
        <Style TargetType="ToggleButton">
            <Style.Triggers>
                <DataTrigger Binding="{Binding Path=IsChecked}" Value="True">
                    <Setter Property="Template" Value="{StaticResource OnTemplate}" />
                </DataTrigger>
                <DataTrigger Binding="{Binding Path=IsChecked}" Value="False">
                    <Setter Property="Template" Value="{StaticResource OffTemplate}" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </ToggleButton.Style>
</ToggleButton>

这是两个模板:

<ControlTemplate x:Key="OnTemplate">
    <Grid>
        <Image Source="ToggleOn.png" />
        <TextBlock>On</TextBlock>
    </Grid>
</ControlTemplate>

<ControlTemplate x:Key="OffTemplate">
    <Grid>
        <Image Source="ToggleOff.png" />
        <TextBlock>Off</TextBlock>
    </Grid>
</ControlTemplate>

这似乎行不通。我究竟做错了什么?

4

1 回答 1

1

尝试简单地Template="{StaticResource OnTemplate}"从您的按钮定义中删除。本地值胜过触发器/样式设置器的值。

此外,您将需要使用常规Trigger而不是 a ,或者您DataTrigger需要设置绑定。我推荐前者。RelativeSource={RelativeSource Self}DataTrigger

于 2013-11-11T14:11:14.140 回答