Hello

Je voudrais changer le style d'un bouton sur lequel on a cliqué (pas juste pendant le clic, je veux que le style soit conservé après le clic)

J'ai écrit cette méthode dans mon code C#, que j'appelle lors de l'élément Button_Click :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
        private void SetClickedButtonStyle(Button button)
        {
            LinearGradientBrush background = new LinearGradientBrush();
            background.GradientStops.Add(new GradientStop(Colors.White, 0));
            background.GradientStops.Add(new GradientStop(Color.FromRgb(183, 216, 237), 1));
            button.Background = background;
 
            SolidColorBrush border = new SolidColorBrush();
            border.Color = Color.FromRgb(60, 127, 177);
            button.BorderBrush = border;
            button.BorderThickness = new Thickness(1);
        }
Je voulais savoir s'il était possible de faire la même chose en WPF, dans un trigger. J'ai tenté ça (inspiré de la page http://msdn.microsoft.com/en-us/library/ms748815.aspx) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
 
<Button.Background>
<LinearGradientBrush>
<GradientStop x:Name="GradientStop1" Color="White" />
<GradientStop x:Name="GradientStop2" Color="White" />
</LinearGradientBrush>
 
</Button.Background>
<Button.Triggers>
<EventTrigger RoutedEvent="Button.Click">                                    
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
 
<ColorAnimation Storyboard.TargetName="GradientStop1"
Storyboard.TargetProperty="Color" To="White" />
 
<ColorAnimation Storyboard.TargetName="GradientStop2"
Storyboard.TargetProperty="Color">
<ColorAnimation.To>
<Color R="183" G="216" B="237" />
</ColorAnimation.To>
</ColorAnimation>
 
<ColorAnimation Storyboard.TargetProperty="(Control.BorderBrush).(SolidColorBrush.Color)">
<ColorAnimation.To>
<Color R="60" G="127" B="177" />
</ColorAnimation.To>
</ColorAnimation>
 
</Storyboard>
</BeginStoryboard>                                        
</EventTrigger.Actions>                                    
</EventTrigger>
</Button.Triggers>
Mais bon apparemment c'est pas la bonne façon vu que ça ne change rien lors du clic. Est-ce qu'il faut bien passer par un storyboard pour faire ce genre de choses ?