Wpf 双重动画-启动事件?
我定义了一个故事板:Wpf 双重动画-启动事件?,wpf,storyboard,Wpf,Storyboard,我定义了一个故事板: <Grid.Resources> <Storyboard x:Key="MasterAnim" x:Name="MasterAnim" Duration="0:0:10" > <DoubleAnimation x:Name="ANIMATABLE_WidthExp" Storyboard.TargetName="ANIMELEMENT_Sb
<Grid.Resources>
<Storyboard x:Key="MasterAnim" x:Name="MasterAnim" Duration="0:0:10" >
<DoubleAnimation x:Name="ANIMATABLE_WidthExp"
Storyboard.TargetName="ANIMELEMENT_SboardRect1"
Storyboard.TargetProperty="Width"
From="100"
To="800"
Duration="0:0:5" />
<DoubleAnimation x:Name="ANIMATABLE_HeightExp"
Storyboard.TargetName="ANIMELEMENT_SboardRect1"
Storyboard.TargetProperty="Height"
From="100"
To="800"
BeginTime="0:0:5"
Duration="0:0:5" />
</Storyboard>
</Grid.Resources>
当每一个双动画即将开始时,是否有任何方法可以捕获?我需要在动画开始之前调用它所针对的元素的方法,但我不确定最好的方法是什么 没有启动事件,但您可以在DoubleAnimation上处理CurrentTimeInvalidated、CurrentStateInvalidated和Completed事件。CurrentStateInvalidated可能就是您所需要的全部
private void DoubleAnimationCurrentTimeInvalidated(object sender, EventArgs e)
{
var clock = (AnimationClock) sender;
Debug.WriteLine(string.Format("CurrentTime: state={0}, progress={1}, time={2}", clock.CurrentState, clock.CurrentProgress, clock.CurrentTime));
}
private void DoubleAnimationCurrentStateInvalidated(object sender, EventArgs e)
{
var clock = (AnimationClock)sender;
Debug.WriteLine(string.Format("CurrentState: state={0}", clock.CurrentState));
}
private void DoubleAnimationCompleted(object sender, EventArgs e)
{
var clock = (AnimationClock) sender;
Debug.WriteLine(string.Format("Completed: state={0}", clock.CurrentState));
}
忽略我们得到的当前时间
CurrentState: state=Active
CurrentState: state=Filling
Completed: state=Filling
当动画运行时