¿Cómo uso colores de recursos en WPF de doble animación?

programación


Hola amigos.
Intenté animar mi ToggleButton durante MouseEnter y MouseLeave.
El siguiente código funciona cuando uso directamente el código de color.
Pero si lo hago referencia a un recurso, no funciona y me da una excepción.

Excepción lanzada:
System.Windows.Markup.XamlParseException: ”Establecer la propiedad ‘System.Windows.Media.Animation.ColorAnimation.From’ generó una excepción.’ Número de línea ‘137’ y posición de línea ’46’.’
Excepción interna: ArgumentException: ‘#FF2E353F’ no es un valor válido para la propiedad ‘De’.

¿Alguna ayuda por favor?

Lo que he probado:

Esto funciona bien.

XML
<BeginStoryboard x:Name="BeginStoryboardNameR">
    <Storyboard>
        <ColorAnimation From="#015CBF" To="#007AFF" 
                        Storyboard.TargetName="templateRoot" 
                        Storyboard.TargetProperty="(Control.Background).(SolidColorBrush.Color)"
                        FillBehavior="HoldEnd"
                        Duration="0:0:.2"/>
    </Storyboard>
</BeginStoryboard>

Este código no funciona y me da una excepción.

XML
<SolidColorBrush x:Key="MyBox.TButton.Bg" Color="#FF2E353F"/>

<BeginStoryboard x:Name="BeginStoryboardNameR">
    <Storyboard>
        <ColorAnimation From="{StaticResource MyBox.TButton.Bg}" To="#007AFF"
                        Storyboard.TargetName="templateRoot"
                        Storyboard.TargetProperty="(Control.Background).(SolidColorBrush.Color)"
                        FillBehavior="HoldEnd"
                        Duration="0:0:.2"/>
    </Storyboard>
</BeginStoryboard>

Solución 1

Su recurso es SolidColorBrush, no un Color, que es lo que espera From.

Creo que tu recurso debería ser:

XAML
<Color x:Key="MyBox.TButton.Bg">#FF2E353F</Color>

コメント

タイトルとURLをコピーしました