wpf storyboard eventtrigger coloranimation

Cambio de fondo de WPF de Border OnMouseDown



storyboard eventtrigger (1)

No veo ningún error obvio y el proyecto de muestra que creé usando el código que publicó funciona bien. Tal vez puedas usarlo para encontrar la fuente de tu problema

<Window.Resources> <Storyboard x:Key="OnMouseDown"> <ColorAnimation Duration="0:0:0.15" Storyboard.TargetName="border" Storyboard.TargetProperty="Background.GradientStops[0].Color" To="Red" /> <ColorAnimation Duration="0:0:0.15" Storyboard.TargetName="border" Storyboard.TargetProperty="Background.GradientStops[1].Color" To="Red" /> <ColorAnimation Duration="0:0:0.15" Storyboard.TargetName="border" Storyboard.TargetProperty="Background.GradientStops[2].Color" To="Red" /> </Storyboard> </Window.Resources> <Grid> <Border Name="border"> <Border.Background> <LinearGradientBrush> <GradientStop Color="Red" Offset="0"/> <GradientStop Color="Green" Offset="0.5"/> <GradientStop Color="Blue" Offset="1.0"/> </LinearGradientBrush> </Border.Background> <Border.Triggers> <EventTrigger RoutedEvent="PreviewMouseLeftButtonDown" SourceName="border"> <BeginStoryboard x:Name="MouseDown_BeginStoryboard" Storyboard="{StaticResource OnMouseDown}"/> </EventTrigger> </Border.Triggers> </Border> </Grid>

Actualizar

Intenté agregar un evento MouseLeave también y sigue funcionando.

Actualización 2

MouseEnter agregado

<Window.Resources> <Storyboard x:Key="OnMouseDown"> <ColorAnimation Duration="0:0:0.15" Storyboard.TargetName="border" Storyboard.TargetProperty="Background.GradientStops[0].Color" To="Red" /> <ColorAnimation Duration="0:0:0.15" Storyboard.TargetName="border" Storyboard.TargetProperty="Background.GradientStops[1].Color" To="Red" /> <ColorAnimation Duration="0:0:0.15" Storyboard.TargetName="border" Storyboard.TargetProperty="Background.GradientStops[2].Color" To="Red" /> </Storyboard> <Storyboard x:Key="OnMouseLeave"> <ColorAnimation Duration="0:0:0.15" Storyboard.TargetName="border" Storyboard.TargetProperty="Background.GradientStops[0].Color" To="Blue" /> <ColorAnimation Duration="0:0:0.15" Storyboard.TargetName="border" Storyboard.TargetProperty="Background.GradientStops[1].Color" To="Blue" /> <ColorAnimation Duration="0:0:0.15" Storyboard.TargetName="border" Storyboard.TargetProperty="Background.GradientStops[2].Color" To="Blue" /> </Storyboard> <Storyboard x:Key="OnMouseEnter"> <ColorAnimation Duration="0:0:0.15" Storyboard.TargetName="border" Storyboard.TargetProperty="Background.GradientStops[0].Color" To="Green" /> <ColorAnimation Duration="0:0:0.15" Storyboard.TargetName="border" Storyboard.TargetProperty="Background.GradientStops[1].Color" To="Green" /> <ColorAnimation Duration="0:0:0.15" Storyboard.TargetName="border" Storyboard.TargetProperty="Background.GradientStops[2].Color" To="Green" /> </Storyboard> </Window.Resources> <Grid> <Border Name="border"> <Border.Background> <LinearGradientBrush> <GradientStop Color="Red" Offset="0"/> <GradientStop Color="Green" Offset="0.5"/> <GradientStop Color="Blue" Offset="1.0"/> </LinearGradientBrush> </Border.Background> <Border.Triggers> <EventTrigger RoutedEvent="PreviewMouseLeftButtonDown" SourceName="border"> <BeginStoryboard x:Name="MouseDown_BeginStoryboard" Storyboard="{StaticResource OnMouseDown}"/> </EventTrigger> <EventTrigger RoutedEvent="MouseLeave" SourceName="border"> <BeginStoryboard x:Name="MouseLeave_BeginStoryboard" Storyboard="{StaticResource OnMouseLeave}"/> </EventTrigger> <EventTrigger RoutedEvent="MouseEnter" SourceName="border"> <BeginStoryboard x:Name="MouseEnter_BeginStoryboard" Storyboard="{StaticResource OnMouseEnter}"/> </EventTrigger> </Border.Triggers> </Border> </Grid>

Estoy tratando de cambiar el fondo de un borde en el botón izquierdo del mouse hacia abajo. Botón No lo entiendo Por supuesto, mi gradiente tiene 3 paradas.

Eventtrigger:

<EventTrigger RoutedEvent="UIElement.PreviewMouseLeftButtonDown" SourceName="border"> <BeginStoryboard x:Name="MouseDown_BeginStoryboard" Storyboard="{StaticResource OnMouseDown}"/> </EventTrigger>

StoryBoard:

<Storyboard x:Key="OnMouseDown"> <ColorAnimation Duration="0:0:0.15" Storyboard.TargetName="border" Storyboard.TargetProperty="Background.GradientStops[0].Color" To="Red" /> <ColorAnimation Duration="0:0:0.15" Storyboard.TargetName="border" Storyboard.TargetProperty="Background.GradientStops[1].Color" To="Red" /> <ColorAnimation Duration="0:0:0.15" Storyboard.TargetName="border" Storyboard.TargetProperty="Background.GradientStops[2].Color" To="Red" /> </Storyboard>

Si alguien ve el error, por favor dímelo;)