Comment utiliser les couleurs des ressources dans doubleanimation WPF ?

la programmation


Salut les gens.
J’ai essayé d’animer mon ToggleButton pendant MouseEnter et MouseLeave.
Le code ci-dessous fonctionne lorsque j’utilise directement le code couleur.
Mais si je le référence à une ressource, cela ne fonctionne pas et me donne une exception.

Exception levée :
System.Windows.Markup.XamlParseException : « Définir la propriété « System.Windows.Media.Animation.ColorAnimation.From » a levé une exception. Numéro de ligne « 137 » et position de ligne « 46 ».
Exception interne : ArgumentException : ‘#FF2E353F’ n’est pas une valeur valide pour la propriété “From”.

Une aide aimable s’il vous plaît ?

Ce que j’ai essayé :

Cela fonctionne 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>

Ce code ne fonctionne pas et me donne une exception.

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>

Solution 1

Votre ressource est un SolidColorBrush, pas un Color, comme l’attend From.

Je pense que votre ressource devrait être :

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

コメント

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