C# 为什么合成动画(UWP文档中的示例)不起作用?

C# 为什么合成动画(UWP文档中的示例)不起作用?,c#,xaml,uwp,C#,Xaml,Uwp,简单的动画示例显示在Windows UWP文档下的视觉层部分和时间动画子部分不工作 以上是文档中显示的代码示例。 上面是我正在制作动画的XAML矩形的代码 上面是我编写的代码,类似于第一幅图中的代码 这就是我每次在调试模式下运行应用程序时都会遇到的错误。找不到该属性。但这是写在文档中的,那怎么可能呢。还有一件事我也尝试过将属性设置为renderTransform,但也不起作用 我做错了什么 我认为这是错误的。视觉对象没有像“翻译”这样的属性。要将其从左向右移动 visual.StartAni

简单的动画示例显示在Windows UWP文档下的视觉层部分和时间动画子部分不工作

以上是文档中显示的代码示例。

上面是我正在制作动画的XAML矩形的代码

上面是我编写的代码,类似于第一幅图中的代码

这就是我每次在调试模式下运行应用程序时都会遇到的错误。找不到该属性。但这是写在文档中的,那怎么可能呢。还有一件事我也尝试过将属性设置为renderTransform,但也不起作用

我做错了什么

我认为这是错误的。视觉对象没有像“翻译”这样的属性。要将其从左向右移动

visual.StartAnimation("Offset.X", animation);

我有一个非常简单的示例代码,在GitHub上用UI.Composition设置对象的动画。这些评论都是日文的,但我希望能对你有所帮助


添加另一个答案,因为这里的答案并不完全正确-虽然示例是错误的,但事实上,来自XAML对象的合成视觉上有一个
Translation
属性-如果为XAML对象的视觉设置动画,这也很可能比使用偏移更可取

首先,您需要在元素上启用translation属性,如下所示:

ElementCompositionPreview.SetIsTranslationEnabled(uiElement,true)

其次,您需要更改动画属性以实际针对正确的属性:

visual.StartAnimation(“Translation.X”,动画)

只有当你的目标是创建者更新或更高版本时,这才有效


使用
Translation
over
Offset
完全避免了XAML布局更新破坏动画的问题,因为XAML位置更新将覆盖视觉的偏移并停止任何当前动画,而Translation动画将继续运行,而XAML布局引擎的功能丝毫没有减弱。

它工作得很好!谢谢我能再请你帮个忙吗?几天来,我一直在学习合成API,有没有什么方法可以让我看到UIElement的所有可设置动画的属性,比如比例、偏移量或其他什么?你可以从这里找到“可设置动画的属性”—好吧,问个简单的问题!如何知道对象可用于设置动画的属性?这将是非常有帮助的,如果有一些方法来计算出所有的属性。pnp0a03的链接封面的大部分。微软的开发网站上曾经有一个grerat合成主文档,但现在已经被删除了。翻译是一个特例属性,任何地方都没有适当的文档记录——我甚至不确定微软的文档站点是否提到它!
visual.StartAnimation(nameof(visual.Offset) + "." + nameof(visual.Offset.X), animation);