【问题标题】:Why Windows.UI.Composition AnimationController.Progress always return zero?为什么 Windows.UI.Composition AnimationController.Progress 总是返回零?
【发布时间】:2020-07-04 20:51:45
【问题描述】:

我正在尝试使用以下命令读取Windows.UI.Composition 中的动画Progress 属性:

double progress = _target.TryGetAnimationController("Offset")?.Progress ?? double.NaN;

_target 对象上的属性“Offset”的动画运行正常,但在动画运行超过 10 秒的过程中,progress 属性始终为零

有人用过这个属性吗?

其他信息

我将此 Microsoft 示例用作测试的基本代码: https://github.com/microsoft/WindowsCompositionSamples/tree/master/Demos/Reference%20Demos/Animations_KeyFrame/Animate_Visual_Position

我添加了一个计时器回调来读取进度:

    private void timerCallback(object state)
    {
       double progress = _target.TryGetAnimationController("Offset")?.Progress ?? double.NaN;
       Debug.WriteLine(progress.ToString());
    }

在初始化动画后的“Animate_Click”事件中启用定时器。

【问题讨论】:

  • 您能否尝试显示完整的代码,我无法重现此内容,更好的方法是与我们分享代码示例,以便更好地进行测试。
  • 您好@NicoZhu-MSFT,我在问题中添加了有关代码的更多信息。感谢您的帮助
  • 我可以重现这种行为,但我不确定它是否是设计使然,我需要对此进行更多测试,您也可以在WindowsCompositionSamplesissues 中发布问题报告。
  • 我在示例存储库中添加了一个问题:github.com/microsoft/WindowsCompositionSamples/issues/346
  • 好的,感谢您的反馈。

标签: c# windows uwp


【解决方案1】:

AnimationController.Progress 属性在运行 KeyFrameAnimation 时始终返回零,设计为已回答 here

使用 CompositionScopeBatch 并在子路径中创建动画可以在特定点设置事件,这解决了我的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-17
    • 2010-09-26
    • 1970-01-01
    相关资源
    最近更新 更多