ColorAnimation不喜欢我在WPF xaml文件中使用DynamicSource

ColorAnimation不喜欢我在WPF xaml文件中使用DynamicSource,wpf,silverlight,xaml,Wpf,Silverlight,Xaml,我的应用程序中的某些关键颜色作为动态资源加载。除了彩色动画外,大多数控件都可以这样做。为此,它抛出一个异常: 无法将属性“To”中的值转换为类型为“System.Windows.Media.Color,PresentationCore,Version=3.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35]”的对象FF93CF65'不是属性“To”的有效值 我在样式中使用了完全相同的资源,在这种情况下效果很好。所讨论的xaml如下所示: 有

我的应用程序中的某些关键颜色作为动态资源加载。除了彩色动画外,大多数控件都可以这样做。为此,它抛出一个异常:

无法将属性“To”中的值转换为类型为“System.Windows.Media.Color,PresentationCore,Version=3.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35]”的对象FF93CF65'不是属性“To”的有效值

我在样式中使用了完全相同的资源,在这种情况下效果很好。所讨论的xaml如下所示:

有人对此有什么想法吗?
-Dave

您正在尝试使用笔刷属性设置颜色值。试着改变

<ColorAnimation  BeginTime="00:00:00.3" Duration="00:00:00.4"   Storyboard.TargetProperty="(Border.BorderBrush).(SolidColorBrush.Color)" To="{StaticResource ButtonBorder}"/>
致:


您正在尝试使用笔刷属性设置颜色值。试着改变

<ColorAnimation  BeginTime="00:00:00.3" Duration="00:00:00.4"   Storyboard.TargetProperty="(Border.BorderBrush).(SolidColorBrush.Color)" To="{StaticResource ButtonBorder}"/>
致:


根据几小时的随机实验,我得出结论,这是不可能做到的。终于不容易了。

根据几小时的随机实验,我得出结论,这是不可能做到的。终于不容易了。

我刚试过,效果不错

<Color x:Key="ButtonBorderColor">Green</Color>
<SolidColorBrush x:Key="ButtonBorder" Color="{StaticResource ButtonBorderColor}" />

<Style x:Key="ChildWindowButtonBarButtonStyle" TargetType="{x:Type Button}">
    <Setter Property="BorderBrush" Value="{DynamicResource ButtonBorder}" />
    <Style.Triggers>
        <Trigger Property="IsMouseOver" Value="True">
            <Setter Property="BorderBrush" Value="#ffffb14c" />
        </Trigger>
        <Trigger Property="IsEnabled" Value="false">
            <Trigger.EnterActions>
                <BeginStoryboard>
                    <Storyboard>
                        <DoubleAnimation BeginTime="00:00:00" Duration="00:00:04"  Storyboard.TargetProperty="Opacity" From="1" To=".5" />
                    </Storyboard>
                </BeginStoryboard>
            </Trigger.EnterActions>
            <Trigger.ExitActions>
                <BeginStoryboard>
                    <Storyboard>
                        <DoubleAnimation BeginTime="00:00:00" Duration="00:00:04" Storyboard.TargetProperty="Opacity" From=".5" To="1" />
                        <!--<ColorAnimation  BeginTime="00:00:00" Duration="00:00:02" Storyboard.TargetProperty="(Border.BorderBrush).(SolidColorBrush.Color)" To="Green"/>-->
                        <ColorAnimation  BeginTime="00:00:00" Duration="00:00:04" Storyboard.TargetProperty="(Border.BorderBrush).(SolidColorBrush.Color)" To="{StaticResource ButtonBorderColor}"/>
                    </Storyboard>
                </BeginStoryboard>
            </Trigger.ExitActions>
        </Trigger>
    </Style.Triggers>
</Style>

我刚试过,效果不错

<Color x:Key="ButtonBorderColor">Green</Color>
<SolidColorBrush x:Key="ButtonBorder" Color="{StaticResource ButtonBorderColor}" />

<Style x:Key="ChildWindowButtonBarButtonStyle" TargetType="{x:Type Button}">
    <Setter Property="BorderBrush" Value="{DynamicResource ButtonBorder}" />
    <Style.Triggers>
        <Trigger Property="IsMouseOver" Value="True">
            <Setter Property="BorderBrush" Value="#ffffb14c" />
        </Trigger>
        <Trigger Property="IsEnabled" Value="false">
            <Trigger.EnterActions>
                <BeginStoryboard>
                    <Storyboard>
                        <DoubleAnimation BeginTime="00:00:00" Duration="00:00:04"  Storyboard.TargetProperty="Opacity" From="1" To=".5" />
                    </Storyboard>
                </BeginStoryboard>
            </Trigger.EnterActions>
            <Trigger.ExitActions>
                <BeginStoryboard>
                    <Storyboard>
                        <DoubleAnimation BeginTime="00:00:00" Duration="00:00:04" Storyboard.TargetProperty="Opacity" From=".5" To="1" />
                        <!--<ColorAnimation  BeginTime="00:00:00" Duration="00:00:02" Storyboard.TargetProperty="(Border.BorderBrush).(SolidColorBrush.Color)" To="Green"/>-->
                        <ColorAnimation  BeginTime="00:00:00" Duration="00:00:04" Storyboard.TargetProperty="(Border.BorderBrush).(SolidColorBrush.Color)" To="{StaticResource ButtonBorderColor}"/>
                    </Storyboard>
                </BeginStoryboard>
            </Trigger.ExitActions>
        </Trigger>
    </Style.Triggers>
</Style>

不,没有快乐。我确实找到了另一篇文章,它似乎说这是设计的,不容易解决。因此,我要结束这个问题。不,没有乐趣。我确实找到了另一篇文章,它似乎说这是设计的,不容易解决。因此,我结束这个问题。