Search code examples
wpfbuttontriggerscontroltemplates

change content button with trigger


I want change the content of the button to another image when it is pressed but nothing happens.

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

thank you :)


Solution

  • Here you go:

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