WPF在故事板运行后更改Propery

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并停止故事板,但我想知道是否有方法告诉故事板完成,但离开高度在新值?

注:故事板可能会再次在此之后重新运行,所以我不相信,取出故事板完全是一种选择。

+0

设置FillBehavior停止并添加一个Completed处理程序,该属性值将属性值设置为所需的值。 – Clemens

+0

你读过这个吗? https://docs.microsoft.com/en-us/dotnet/framework/wpf/graphics-multimedia/how-to-control-a-storyboard-after-it-starts – mm8

myrect.BeginAnimation(HeightProperty, null); 
myrect.Width = 0;