如何在uwp背后的代码中使用scaleanimation?

时间:2018-08-04 10:13:38

标签: uwp

这是XAML:

<Border Grid.Row="1" Background="#1558b9" Name="WelcomeBorder" RenderTransformOrigin="0.5,0.5">
                <Border.RenderTransform>
                    <ScaleTransform ScaleX="0.5"></ScaleTransform>
                </Border.RenderTransform>                
</Border>


我想使用动画将其ScaleX从0.5变为1。

而且,我发现微软提供了ScaleAnimation:
https://docs.microsoft.com/en-us/uwp/api/windows.ui.core.animationmetrics.scaleanimation

但是在我在代码后面使用Windows.UI.Core.AnimationMetrics的命名空间后,它仍然不能使用ScaleAnimation。

我的项目中似乎没有Windows.UI.Core.AnimationMetrics.dll,在哪里可以找到它?

我的Windows 10版本是1803。

我知道很多人会问我为什么不只在XAML中使用动画,而在代码后方使用。那是因为我需要一个一个地播放一些动画,然后在所有动画完成后再显示新页面。

1 个答案:

答案 0 :(得分:1)

如果我了解您要执行的操作,那么您正在寻找的是故事板DoubleAnimation,而不是ScaleAnimation。

对于您的字面问题:如果您查看链接的ScaleAnimation文档,“需求”部分的“设备系列”将显示需要Desktop Extension SDK。您需要将其添加到项目引用中才能使用ScaleAnimation。再次强调一下,ScaleAnimation指标可能不是您所需要的。用于检查动画而不是动画。

ScaleTransform.ScaleX属性是一个double值,因此您将使用DoubleAnimation对其进行动画处理。通常,先用Xaml定义动画,然后用triggers it from code定义动画,而不是完全通过代码定义动画,但是如果您确实愿意,可以执行后者。有关概述,请参见Storyboarded animations docs,有关在Xaml中创建DoubleAnimation并从代码触发它的演示,请参见Xaml Animation library sample。当您进入Motion docs时,Page TransitionsConnected Animation页面值得一读,可能对整个跨页面动画场景很有用。 还要检查Optimize animations, media, and images docs。您在针对ScaleX的正确轨道上。这是为避免依赖动画(因此效果较慢)而提出的具体建议之一。