t.m*_*.m. 1 c# win-universal-app uwp
我有UWP应用程序,我使用Frame.Navigate()方法很多.默认情况下,它似乎是使用动画执行转换,使下一个屏幕从底部滑动.但是,对于我的情况,如果下一个屏幕来自右侧或左侧,则更有意义.
因此,要更改此默认行为,我使用了此MSDN文档中的以下代码:
// 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 } );
Run Code Online (Sandbox Code Playgroud)
但我得到这个错误:
无法使用集合初始值设定项初始化类型'SlideNavigationTransitionInfo',因为它没有实现'System.Collections.IEnumerable'
改变这样的代码
myFrame.Navigate(typeof(RightPage), null, new SlideNavigationTransitionInfo() { Effect = SlideNavigationTransitionEffect.FromRight } );
Run Code Online (Sandbox Code Playgroud)
导致应用程序因无效的强制转换异常而崩溃.
这是一个我正在更新的旧应用程序,所以我怀疑这可能会导致问题,我更新了目标版本.现在目标部分看起来像:
目标版本:1809(10.0; Build 17763);
最低版本:(10.0; 10240)
但问题仍然存在.不知道怎么解决这个问题?
第一个语法错误是不言自明的; 而InvalidCastException似乎是由于您在版本低于1809的操作系统上运行代码而引起的.
SlideNavigationTransitionEffect枚举是在1809年添加的.您可以成功编译代码,因为您已经安装了1809的SDK,但是在运行时,如果您事先没有检查,如果运行时不支持,则此代码会失败.
//remove this from your code and it should be running well
Effect = SlideNavigationTransitionEffect.FromRight
Run Code Online (Sandbox Code Playgroud)
在这种情况下,您可以将Min版本设置为1809,强制执行此应用程序只能安装在1809或更高版本.或者您可以编写版本自适应代码来检查API对操作系统的支持,这样,您可以将最低版本保持在所需的最低值,以便针对更广泛的设备.
| 归档时间: |
|
| 查看次数: |
388 次 |
| 最近记录: |