UWP网页过渡,改变动画方向

问题描述 投票:1回答:2

我有我使用Frame.Navigate()方法很多UWP应用。默认情况下,它似乎与动画,使下一个屏幕出现从底部滑动来进行过渡。然而,对于我来说,它更有意义,如果下一个画面来自左边或右边。

所以,要改变这种默认行为,我用下面的代码this MSDN document

// Navigate to the right, ie. from LeftPage to RightPage
myFrame.Navigate(typeof(RightPage), null, new SlideNavigationTransitionInfo() { SlideNavigationTransitionEffect.FromRight } );

// Navigate to the left, ie. from RightPage to LeftPage
myFrame.Navigate(typeof(LeftPage), null, new SlideNavigationTransitionInfo() { SlideNavigationTransitionEffect.FromLeft } );

但我得到这个错误:

不能与集合初始化初始化类型“SlideNavigationTransitionInfo”,因为它没有实现“System.Collections.IEnumerable”

改变这样的代码

myFrame.Navigate(typeof(RightPage), null, new SlideNavigationTransitionInfo() { Effect = SlideNavigationTransitionEffect.FromRight } );

使应用程序通过无效的转换异常崩溃。

这是我更新,所以我怀疑可能导致的问题,我更新的目标版本的旧的应用程序。现在,靶向部分是这样的:

目标版本:1809(10.0;建立17763);

我的版本:(10.0; 10240)

但尽管如此,问题依然存在。不知道如何解决这个问题?

c# uwp win-universal-app
2个回答
1
投票

如果你愿意,你可以简单地使用XAML页面转换,它也分钟版10240兼容的:只要把下面的线在你RightPage或LeftPage XAML源。

<Page.Transitions>
   <TransitionCollection>
      <EdgeUIThemeTransition Edge="Left">
      </EdgeUIThemeTransition>   
   </TransitionCollection>
</Page.Transitions>

6
投票

所述第一语法误差相当言自明;而InvalidCastException的似乎是由事实造成的,你是比1809低版本的操作系统上运行的代码你。

SlideNavigationTransitionEffect Enum是在1809年加入您可以编译代码成功,因为你已经安装了SDK为1809年,但在运行时,如果你不事先检查,这个代码,如果运行时不支持它失败。

//remove this from your code and it should be running well
Effect = SlideNavigationTransitionEffect.FromRight 

在这种情况下,您可以设置最低版本为1809,强制执行这个程序只能在1809或更高版本安装。或者,你可以写version adaptive code检查OS支持的API,通过这种方式,你可以让你闵版本低期望的目标更广泛的设备。

© www.soinside.com 2019 - 2024. All rights reserved.