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

dav*_*ave 1 silverlight wpf xaml

我的应用程序中的某些键颜色作为动态​​资源加载.除了ColorAnimation之外,大多数控件都可以正常工作.为此,它抛出一个异常:

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

我在样式中使用完全相同的资源,在这种情况下它可以正常工作.有问题的xaml如下所示:

<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:00.8"  Storyboard.TargetProperty="Opacity" From="1" To=".5" />
                    </Storyboard>
                </BeginStoryboard>
            </Trigger.EnterActions>
            <Trigger.ExitActions>
                <BeginStoryboard>
                    <Storyboard>
                        <DoubleAnimation BeginTime="00:00:00" Duration="00:00:00.4"  Storyboard.TargetProperty="Opacity" From=".5" To="1" />
                        <ColorAnimation  BeginTime="00:00:00" Duration="00:00:00.2"   Storyboard.TargetProperty="(Border.BorderBrush).(SolidColorBrush.Color)" To="Green"/>
                        <ColorAnimation  BeginTime="00:00:00.3" Duration="00:00:00.4"   Storyboard.TargetProperty="(Border.BorderBrush).(SolidColorBrush.Color)" To="{StaticResource ButtonBorder}"/>
                    </Storyboard>
                </BeginStoryboard>
            </Trigger.ExitActions>
        </Trigger>
    </Style.Triggers>
</Style>
Run Code Online (Sandbox Code Playgroud)

有没有人对此有任何想法?
- 戴夫

Fre*_*lad 5

我只是尝试过,这很有效

<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>
Run Code Online (Sandbox Code Playgroud)