Home > OS >  How to change the style of a button when pressed
How to change the style of a button when pressed

Time:01-16

I am trying to change the style of a button when I click on it while the app is running.

Like I have a button with a grey color, I want it to change to red when I click on it? I tried to do it with the Click event, however the button still shows the default effect when I hover over the button.

Here is the WPF code I used.

<Style TargetType="Button" x:Key="btnExitDef">
        <Setter Property="Background" Value="#FF1E1E1E"/>
        <Setter Property="Foreground" Value="#FFD6D6D6"/>
        <Setter Property="FontSize" Value="13"/>
        <Setter Property="Margin" Value="0"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="Button">
                    <Border Background="{TemplateBinding Background}"
                        CornerRadius="0"
                        BorderThickness="0"
                        Padding="0"
                        BorderBrush="#000">
                        <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center">

                        </ContentPresenter>
                    </Border>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
        <Style.Triggers>
            <Trigger Property="IsMouseOver" Value="True">
                <Setter Property="Background" Value="Red"/>
                <Setter Property="Foreground" Value="#fff"/>
            </Trigger>
        </Style.Triggers>
    </Style>

<Button Height="35" Width="45" Name="btnExit" Content="✕"  BorderBrush="{x:Null}" Click="btnExit_Click" Style="{StaticResource btnExitDef}"/>

CodePudding user response:

You just need to edit the button's style and add another Trigger for the IsPressed property.

<Trigger Property="IsPressed" Value="True">
    <Setter Property="Background" Value="Red" />
</Trigger>
  • Related