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?