从app.xaml获取storyboard并以编程方式设置目标
本文关键字:编程 方式 设置 目标 app xaml 获取 storyboard | 更新日期: 2023-09-27 18:06:01
我尝试从app.xaml获得动画(向上/向下移动标签,如消息弹出)。但是,当我试图获取storyboard
时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"/>
主要的问题是你正在尝试设置故事板的目标,而不是设置它的动画。试试Storyboard.SetTarget(SBStartAnimation.Children.First(), LBAnimateMessage);
不要忘记LBAnimateMessage
必须是PropertyPath
的属性。
编辑:更正,PropertyPath是为SetTargetProperty.