从app.xaml获取故事板并以编程方式设置目标

时间:2015-08-02 13:24:19

标签: c# wpf xaml

我尝试从app.xaml获取动画(向上/向下移动标签,就像弹出消息一样)。但是,当我试图获得故事板时

的App.xaml:

<Storyboard x:Key="AnimatedMessage">
            <DoubleAnimationUsingKeyFrames 
                                Storyboard.TargetProperty="(UIElement.RenderTransform).(TranslateTransform.Y)"
                                Duration="0:0:10"
                                AutoReverse="True">
                <LinearDoubleKeyFrame Value="100" KeyTime="0:0:2"/>
                <LinearDoubleKeyFrame Value="200" KeyTime="0:0:4"/>
                <LinearDoubleKeyFrame Value="300" KeyTime="0:0:6"/>
            </DoubleAnimationUsingKeyFrames>
        </Storyboard>

我的后端:

Storyboard SBStartAnimation = (Storyboard)this.FindResource("AnimatedMessage");
Storyboard.SetTarget(SBStartAnimation, LBAnimateMessage);
SBStartAnimation.Begin(this);

但它怪我,我无法为storyboard-object设置属性,因为它是只读的。

更新:

我的标签我喜欢动画:

<Label Content="" Name="LBAnimateMessage" Visibility="Hidden" Width="600" Style="{StaticResource Style_BasicMessage}" Margin="10,303,235,38"/>

1 个答案:

答案 0 :(得分:0)

主要问题是您正在尝试设置Storyboard的目标,而不是设置它的动画。试试Storyboard.SetTarget(SBStartAnimation.Children.First(), LBAnimateMessage);

不要忘记LBAnimateMessage必须属于PropertyPath财产。

编辑:更正,PropertyPath适用于SetTargetProperty。