如何在双动画 WPF 中使用资源颜色?


嗨伙计。
我尝试在 MouseEnter 和 MouseLeave 期间为 ToggleButton 设置动画。
当我直接使用颜色代码时,下面的代码有效。
但如果我将它引用到资源,它就不起作用并给我带来异常。

抛出异常:
System.Windows.Markup.XamlParseException:“设置属性‘System.Windows.Media.Animation.ColorAnimation.From’引发异常。” 行号“137”和行位置“46”。
内部异常:ArgumentException:“#FF2E353F”不是属性“From”的有效值。

请帮忙吗?

我尝试过的:

这很好用。

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>

这段代码不起作用并给了我例外。

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>

解决方案1

您的资源是 SolidColorBrush,而不是 Color,这正是 From 所期望的。

我认为你的资源应该是:

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

コメント

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