用触发器更改内容按钮

时间:2015-06-07 21:18:28

标签: wpf button triggers controltemplates

我希望在按下按钮时将按钮的内容更改为另一个图像但没有任何反应。

<Grid>
    <Button Height="120" Width="75">
        <Button.Template>
            <ControlTemplate TargetType="Button">
                <Image Source="no-press.png"/>
                <ControlTemplate.Triggers>
                        <Trigger Property="IsPressed" Value="True">
                            <Setter Property="Content">
                                <Setter.Value>
                                    <DataTemplate>
                                        <Image Source="press.png"/>
                                    </DataTemplate>
                                </Setter.Value>
                            </Setter>
                        </Trigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
        </Button.Template>      
    </Button>        
</Grid>
谢谢你:)

1 个答案:

答案 0 :(得分:4)

你走了:

<Grid>
    <Button Height="120" Width="75">
        <Button.Style>
            <Style TargetType="Button">
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="Button">
                            <Border Background="Transparent" BorderThickness="1" BorderBrush="Black">
                                <ContentPresenter Name="content"/>
                            </Border>
                            <ControlTemplate.Triggers>
                                <Trigger Property="Button.IsPressed" Value="True">
                                    <Setter TargetName="content" Property="ContentPresenter.Content">
                                        <Setter.Value>
                                            <Image Source="pressed.png"/>
                                        </Setter.Value>
                                    </Setter>
                                </Trigger>
                            </ControlTemplate.Triggers>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
        </Button.Style>
        <Image Source="no-pressed.png"/>
    </Button>
</Grid>