WPF在故事板运行后更改Propery
问题描述:
我有如下触发的以下Storyboard;WPF在故事板运行后更改Propery
Storyboard s = (Storyboard) myrect.FindResource("sb");
s.Begin();
-
<Storyboard BeginTime="0" Duration="Forever" x:Key="sb" >
<DoubleAnimation Storyboard.TargetName="myrect"
Storyboard.TargetProperty="Height" From="0" To="{Binding ElementName=myrect, Path=ActualHeight}"
Duration="0:0:0.2" BeginTime="0:0:0"/>
</Storyboard>
但我怎么能那么撤消此(上按下一个按钮),这样我可以设置myrect.Height = 0;
?我知道这是不工作的,因为动画仍在运行。我尝试了FillBehavior="Stop"
,但这会导致高度在动画结束时恢复为0。
我可以再次FindResource并停止故事板,但我想知道是否有方法告诉故事板完成,但离开高度在新值?
注:故事板可能会再次在此之后重新运行,所以我不相信,取出故事板完全是一种选择。
答
myrect.BeginAnimation(HeightProperty, null);
myrect.Width = 0;
设置FillBehavior停止并添加一个Completed处理程序,该属性值将属性值设置为所需的值。 – Clemens
你读过这个吗? https://docs.microsoft.com/en-us/dotnet/framework/wpf/graphics-multimedia/how-to-control-a-storyboard-after-it-starts – mm8