I want no animation when button is pressed, but only the foreground and the background are changed, just like metro style. I'm so perplexed.
Edit:
I create a sample in Expression Blend 4. There are 3 states: Normal, IsMouseOver, IsPressed:
Edit 2:
I just modify the Title "In WPF: how to disable the animation when the button is pressed?" to "In WPF: how to disable the animation when the button after be pressed?"
I find some problems:
- When the mouse is over or press the button, the backgroud of button is not changed;
- The animation run after the button has be pressed, I just want to disable the animation.
Edit 3:
This .xaml can run in VS.
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="WpfApplication17.MainWindow"
x:Name="Window"
Title="MainWindow"
Width="640" Height="480">
<Window.Resources>
<Style x:Key="ButtonStyle1" TargetType="{x:Type Button}">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Foreground" Value="White"/>
<Setter Property="BorderBrush" Value="Black"/>
<Setter Property="Background" Value="Black"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" Value="Black"/>
<Setter Property="BorderBrush" Value="Black"/>
<Setter Property="Foreground" Value="Red"/>
</Trigger>
</Style.Triggers>
<Setter Property="Background" Value="White"/>
<Setter Property="BorderBrush" Value="White"/>
<Setter Property="Foreground" Value="Black" />
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="HorizontalContentAlignment" Value="Center"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="Padding" Value="1"/>
</Style>
</Window.Resources>
<Grid x:Name="LayoutRoot" >
<Button Content="Button"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Width="75"
Style="{DynamicResource ButtonStyle1}"/>
</Grid>
Try this (create a new project and just paste it beneath your definition) :