WPF边框动画无法正常工作

时间:2012-11-09 12:29:25

标签: wpf

我正在尝试将动画放在边框上,如下所示

    <LinearGradientBrush x:Key="RedButtonBrushUp" StartPoint=".5,0" EndPoint=".5,1">
        <GradientStop Color="#ffaaaa" Offset="0"/>
        <GradientStop Color="#cc6666" Offset="0.6"/>
        <GradientStop Color="#bb2222" Offset="1"/>
    </LinearGradientBrush>

    <LinearGradientBrush x:Key="ButtonBrushUp" StartPoint=".5,0" EndPoint=".5,1">
        <GradientStop Color="#aaccff" Offset="0"/>
        <GradientStop Color="#7799ff" Offset="0.6"/>
        <GradientStop Color="#555599" Offset="1"/>
    </LinearGradientBrush>


<Border x:Name="BorderUp" BorderThickness="2,2,2,2" CornerRadius="4,4,4,4" Background="{StaticResource RedButtonBrushUp}">
                    <Border.Triggers>
                        <EventTrigger RoutedEvent="Border.Loaded">
                            <BeginStoryboard>
                                <Storyboard >
                                    <DoubleAnimation Storyboard.TargetName="BorderUp"
                                     Storyboard.TargetProperty="Background"
                                     RepeatBehavior="Forever"
                                     AutoReverse="True"
                                     To="{StaticResource ButtonBrushUp}"
                                     Duration="0:0:0.5" ></DoubleAnimation>
                                </Storyboard>
                            </BeginStoryboard>
                        </EventTrigger>
                    </Border.Triggers>
                </Border>

但它说{StaticResource ButtonBrushUp}是一个无效的类型。我做错了什么?

1 个答案:

答案 0 :(得分:0)

To无法接受渐变画笔停止所需的此类更改。

以下是您正在尝试做的工作示例

    <Window.Resources>
        <Storyboard x:Key="OnLoaded1">
            <ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Border.BorderBrush).(GradientBrush.GradientStops)[1].(GradientStop.Color)" Storyboard.TargetName="myBorder">
                <EasingColorKeyFrame KeyTime="0:0:1" Value="#FFC53838"/>
            </ColorAnimationUsingKeyFrames>
        </Storyboard>
    </Window.Resources>
    <Window.Triggers>
        <EventTrigger RoutedEvent="FrameworkElement.Loaded" SourceName="myBorder">
            <BeginStoryboard Storyboard="{StaticResource OnLoaded1}"/>
        </EventTrigger>
    </Window.Triggers>
    <Grid>
 <StackPanel x:Name="stackPanel" Orientation="Vertical" HorizontalAlignment="Center">
    <Border x:Name="myBorder" Background="#99FFFFFF" BorderThickness="3"
    Margin="0,60,0,20" Padding="20"  >
        <Border.BorderBrush>
            <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                <GradientStop Color="Black" Offset="0"/>
                <GradientStop Color="White" Offset="1"/>
            </LinearGradientBrush>
        </Border.BorderBrush>
      <TextBlock>
        This example shows how to have a border change color after an initial load.
      </TextBlock>
    </Border>
  </StackPanel>