different images for enable and disable states of a button in WPF

button, c#, image, wpf

Solution

You can use a style with triggers like this:

<Style TargetType="{x:Type Button}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type Button}">
                <StackPanel Orientation="Horizontal" >
                    <Image Name="PART_Image" Source="path to normal image" />
                </StackPanel>
                <ControlTemplate.Triggers>
                    <Trigger Property="IsMouseOver" Value="True">
                        <Setter Property="Source" Value="path to mouse over image" TargetName="PART_Image"/>
                    </Trigger>
                    <Trigger Property="IsPressed" Value="True">
                        <Setter Property="Source" Value="path to pressed image" TargetName="PART_Image"/>
                    </Trigger>
                    <Trigger Property="IsEnabled" Value="False">
                        <Setter Property="Source" Value="path to disabled image" TargetName="PART_Image"/>
                    </Trigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

Problem

I want to change the image of the button in the code below based on its state i.e. use different image for enable and disable state. ``` <Button CommandParameter="Open" > <StackPanel Orientation="Horizontal" > <Image Source="../icons/big/open.png" Width="20" Height="20"></Image> </StackPanel> </Button> ``` Thank you.

Original source

Related problems