LinearGradientBrush dans un Trigger
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:
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:
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 ?