gpt4 book ai didi

c# - UWP 页面过渡,改变动画方向

转载 作者:太空宇宙 更新时间:2023-11-03 18:21:09 24 4
gpt4 key购买 nike

我有一个经常使用 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 } );

但是我得到这个错误:

Cannot initialize type 'SlideNavigationTransitionInfo' with a collection initializer because it does not implement 'System.Collections.IEnumerable'

像这样更改代码

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

导致应用程序因无效转换异常而崩溃。

这是我正在更新的旧应用,因此我怀疑这可能会导致问题,因此我更新了目标版本。现在定位部分如下所示:

目标版本:1809(10.0;内部版本 17763);

最低版本:(10.0; 10240)

但是,问题仍然存在。知道如何解决这个问题吗?

最佳答案

第一个语法错误是不言自明的;而 InvalidCastException 似乎是由您在版本低于 1809 的操作系统上运行代码这一事实引起的。

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

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

在这种情况下,您可以将最低版本设置为1809,以强制此应用只能安装在1809或更高版本上。或者你可以写 version adaptive code检查操作系统对 API 的支持,通过这种方式,您可以将最低版本保持在所需的最低水平,以面向更广泛的设备。

关于c# - UWP 页面过渡,改变动画方向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53280521/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com