如何知道合成动画“ ScalarKeyFrameAnimation”(或类似内容)何时完成

问题描述 投票:0回答:1

我需要知道Composition之类的ScalarKeyFrameAnimation动画何时完成。这该怎么做?我已经拨打了如下电话:

    public void Start()
    {
        if (!IsLoaded) return;
        //SET TARGET PROPERTY - OPACITY
        TargetScalarKeyFrameAnimation.Target = "Opacity";

        //SET FROM OPACITY
        if (From < 0) this.Opacity = 0;
        else if (From > 1) this.Opacity = 1;
        else this.Opacity = From;

        //SET FINAL VALUE (OPACITY) 
        if (To < 0) TargetScalarKeyFrameAnimation.InsertKeyFrame(1f, 0);
        else if (To > 1) TargetScalarKeyFrameAnimation.InsertKeyFrame(1f, 1);
        else TargetScalarKeyFrameAnimation.InsertKeyFrame(1f, (float)To);

        //SET DURATION
        if (Duration.TotalMilliseconds > 0) TargetScalarKeyFrameAnimation.Duration = Duration;
        else TargetScalarKeyFrameAnimation.Duration = TimeSpan.FromSeconds(1);

        //SET DELAY
        if (Delay.TotalMilliseconds > 0) TargetScalarKeyFrameAnimation.DelayTime = Delay;
        else TargetScalarKeyFrameAnimation.DelayTime = TimeSpan.FromMilliseconds(0);

        //START
        this.StartAnimation(TargetScalarKeyFrameAnimation);
    }

但是如何获得通知动画已经完成?它将有助于同步UI和其他动画。 StoryboardAnimation为此发生事件。

c# .net animation uwp composition
1个回答
0
投票

如何知道合成动画'ScalarKeyFrameAnimation'(或类似内容)何时完成>>

[目前,尚无可检测合成Api的动画完成的事件。对于您的方案,可以将timerInterval设置为与动画持续时间相同,然后同时调用StartAnimation和计时器Start。然后可以检测到在计时器Start事件中完成的动画。

© www.soinside.com 2019 - 2024. All rights reserved.