【问题标题】:Manually play Page Refresh animation from code behind从后面的代码手动播放页面刷新动画
【发布时间】:2018-08-01 06:59:14
【问题描述】:

我有一个NavigationView,它管理我的应用程序中多个不同Frame 布局的导航。这样,用户可以在不同的导航堆栈上翻转到应用程序的另一部分,然后返回到他们的原始框架并回到他们离开的地方。

我已经设置了每一帧来播放导航动画,如下所示:

<Frame x:Name="UserFrame">
    <Frame.ContentTransitions>
        <TransitionCollection>
            <NavigationThemeTransition/>
        </TransitionCollection>
    </Frame.ContentTransitions>
</Frame>

每当从框架的导航堆栈中添加或删除某些内容时,这都会创建一个漂亮的动画。但是,当我在活动帧之间切换时(只需将活动帧的可见性设置为visible,将非活动帧的可见性设置为collapsed)我没有得到相同的动画效果,因为帧上实际上没有发生导航导航堆栈。

According to the documentation on NavigationThemTransition,我导航时播放的动画是Page Refresh 动画。它指出:

页面刷新是页面导航的默认动画。它是传入内容的上滑动画和淡入动画的组合。当您使用导航菜单等顶级导航时,您应该使用页面刷新。

有没有办法从我后面的代码中调用这个预先构建的动画?如果不是,那么创建动画并使其可供我用于导航的每个 Frame 布局访问的最佳方法是什么?

【问题讨论】:

    标签: c# xaml animation uwp


    【解决方案1】:

    AFAIK 不可能调用预构建转换,例如 NavigationThemeTransition 并针对不是实际的Frame Navigation 的情况公开,但实际上完全不同的情况,例如在框架的Visibility

    对于这种情况,您应该使用静态方法SetImplicitShowAnimation(UIElement, ICompositionAnimationBase),从 ElementCompositionPreview 班级。

    如您所见,此静态方法公开了两个参数,UIElement,它采用您想要制作动画的元素,以及您可以使用在 Windows.UI.Composition 命名空间中定义的 Compositor 创建的动画。

    有用的链接:Create Custom Page Transitions, ElementCompositionPreview Class

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-24
      • 1970-01-01
      • 2012-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-19
      相关资源
      最近更新 更多