如何为任何控件的可见性变化提供滑动动画

How to provide sliding animation on visibility change for any control

我想为堆栈面板的可见性变化提供动画。 windows 10 的 Paint 3D 提供了单击菜单按钮时用于导航视图的动画幻灯片。我想对堆栈面板的可见性进行相同的滑动效果改变。 我尝试使用 Microsoft.Toolkit.Uwp.UI.Animations 和以下代码

来制作动画
          <animations:Implicit.ShowAnimations>
            <animations:TranslationAnimation  Duration="0:0:1" From="0" To="1">
                <animations:ScalarKeyFrame Key="0.2" Value="0.6"/>
                <animations:ScalarKeyFrame Key="0.4" Value="0.3"/>
                <animations:ScalarKeyFrame Key="0.6" Value="0.8"/>
                <animations:ScalarKeyFrame Key="0.8" Value="0.5"/>
            </animations:TranslationAnimation>
        </animations:Implicit.ShowAnimations>

        <animations:Implicit.HideAnimations>
            <animations:OpacityAnimation Duration="0:0:1" From="1" To="0">
                <animations:ScalarKeyFrame Key="0.2" Value="0.5"/>
                <animations:ScalarKeyFrame Key="0.4" Value="0.8"/>
                <animations:ScalarKeyFrame Key="0.6" Value="0.3"/>
                <animations:ScalarKeyFrame Key="0.8" Value="0.6"/>
            </animations:OpacityAnimation>
        </animations:Implicit.HideAnimations>

但这只是让堆栈面板淡入淡出,我想从左向右滑动它。

您可以将多个项目放在一个 <animations:Implicit.ShowAnimations> 元素中,这样您就可以在其中添加 TranslationOpacity 动画。

另外,翻译使用绝对值,所以你所做的只是将面板当前向右移动一个像素,这是难以察觉的。例如,尝试设置 From="-200"To="0"