UWP CompositionObject Animation 导致黑屏

此方法由单击事件触发,效果很好,只是每隔一次调用此方法时整个计算机屏幕都会变黑(例如,第一次可以正常工作,第 2 次可以正常工作,第 3 次可以正常工作......) 一次我单击它太频繁 Windows 10 提示显示驱动程序失败并切换到 Windows 基本显示(我正在使用双屏)。此外,当它变黑时,光标会变成一个忙碌的标志和动画故障。其他人有这个问题吗?

    private async void oscillate()
    {
        SpringScalarNaturalMotionAnimation _springAnimation2= Window.Current.Compositor.CreateSpringScalarAnimation();
        _springAnimation2.DampingRatio = 0.3f;
        _springAnimation2.Period = TimeSpan.FromSeconds(0.02);
        _springAnimation2.InitialValueExpressions["FinalValue"] = "0";
        loginBody= ElementCompositionPreview.GetElementVisual(LoginBody);
        loginBody.Offset = new System.Numerics.Vector3(-70, 0, 0);
        loginBody.StartAnimation("Offset.X", _springAnimation2);
    }


一只斗牛犬
浏览 147回答 1
1回答

Smart猫小萌

如果动画正在运行,您应该切换到CompositionScopedBatch并创建一个用于切换的字段。bool然后注册该Completed活动以关闭您的字段。然后您可以检查此字段以说明您是否可以运行动画。或者改用字典并保留对动画的引用,这样您就可以在开始新动画之前停止它。https://learn.microsoft.com/en-us/uwp/api/windows.ui.composition.compositionbatchcompletedeventargs
打开App,查看更多内容
随时随地看视频慕课网APP