首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DoubleAnimation - On start event?

DoubleAnimation - On start event?
EN

Stack Overflow用户
提问于 2012-02-19 21:59:45
回答 1查看 1.7K关注 0票数 0

我定义了一个故事板:

代码语言:javascript
复制
    <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>

有没有办法捕捉到每一个双动画即将开始的时间?在动画开始之前,我需要在它的目标元素上调用一个方法,但我不确定最好的方法是什么。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-20 01:23:28

没有Started事件,但您可以在DoubleAnimation上处理CurrentTimeInvalidated、CurrentStateInvalidated和Completed事件。CurrentStateInvalidated可能就是您所需要的。

代码语言:javascript
复制
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));
}

忽略我们得到的当前时间

代码语言:javascript
复制
  CurrentState: state=Active

  CurrentState: state=Filling

  Completed: state=Filling

当动画运行时。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9349817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档