example wpf xaml animation user-controls stackpanel

example - stackpanel wpf



WPF: Storyboard en estilo que devuelve un "color" No se puede animar en una instancia de objeto inmutable ". (1)

Parece que no puedes animar un Brush en Resources con Storyboard.Target . Pero puede establecer el Background de su Style (ya lo ha hecho) y animar esta propiedad.

<ColorAnimation Storyboard.TargetProperty="Background.Color" From="{StaticResource FirstColor}" To="{StaticResource FinishedColor}" Duration="0:0:10" BeginTime="0:0:0" />

Tengo el siguiente XAML:

<UserControl.Resources> <SolidColorBrush x:Key="Brush"></SolidColorBrush> <Style TargetType="{x:Type StackPanel}" x:Key="ColourChangingStyle"> <Setter Property="Background" Value="{StaticResource Brush}" /> <Style.Triggers> <DataTrigger Binding="{Binding Path=''Stage''}" Value="1"> <DataTrigger.EnterActions> <BeginStoryboard> <Storyboard> <ColorAnimation Storyboard.Target="{StaticResource Brush}" Storyboard.TargetProperty="Color" From="{StaticResource FirstColor}" To="{StaticResource FinishedColor}" Duration="0:0:10" BeginTime="0:0:0"/> </Storyboard> </BeginStoryboard> </DataTrigger.EnterActions> </DataTrigger> </Style.Triggers> </Style> </UserControl.Resources> <StackPanel x:Name="InfoPanel" Orientation="Vertical" Margin="1,2" Style="{DynamicResource ColourChangingStyle}"> ... </StackPanel>

Y sigo recibiendo el mismo error que:

No se puede animar ''Color'' en una instancia de objeto inmutable

cual es el pincel Busqué el problema y creo que tiene que ver con atar el pincel al StackPanel lo que hace que no esté disponible para alterarlo más tarde.

¿Hay alguna forma de evitar esto, literalmente no tengo idea de cuáles son mis otras opciones para el mismo efecto sin colores de codificación rígida, y hacer todos los eventos en el código?