C# UWP页面转换,更改动画方向

C# UWP页面转换,更改动画方向,c#,uwp,win-universal-app,C#,Uwp,Win Universal App,我有一个UWP应用程序,我经常使用Frame.Navigate()方法。默认情况下,它似乎是通过动画执行过渡,使下一个屏幕看起来从底部滑动。然而,在我的例子中,如果下一个屏幕是从右边还是从左边来,则更有意义 因此,为了更改此默认行为,我使用了以下代码: 但我得到了这个错误: 无法使用 集合初始值设定项,因为它未实现 “System.Collections.IEnumerable” 像这样更改代码 myFrame.Navigate(typeof(RightPage), null, new Slid

我有一个UWP应用程序,我经常使用Frame.Navigate()方法。默认情况下,它似乎是通过动画执行过渡,使下一个屏幕看起来从底部滑动。然而,在我的例子中,如果下一个屏幕是从右边还是从左边来,则更有意义

因此,为了更改此默认行为,我使用了以下代码:

但我得到了这个错误:

无法使用 集合初始值设定项,因为它未实现 “System.Collections.IEnumerable”

像这样更改代码

myFrame.Navigate(typeof(RightPage), null, new SlideNavigationTransitionInfo() { Effect = SlideNavigationTransitionEffect.FromRight } );
通过无效的强制转换异常导致应用程序崩溃

这是一个旧的应用程序,我正在更新,所以我怀疑这可能会导致问题,我更新了目标版本。现在,目标部分如下所示:

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

最小版本:(10.0;10240)

但问题依然存在。
你知道如何解决这个问题吗?

第一个语法错误是不言自明的;而InvalidCastException似乎是因为您在版本低于1809的操作系统上运行代码

于1809年增加。您可以成功编译代码,因为您已经安装了适用于1809的SDK,但是在运行时,如果您没有事先检查,那么如果运行时不支持该代码,则该代码将失败

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

在这种情况下,您可以将Min版本设置为1809,以强制执行此应用程序只能安装在1809或更高版本上。或者,您可以通过编写来检查操作系统对API的支持,这样,您就可以将最小版本保持在所需的最低水平,以适应更广泛的设备。

第一个语法错误是不言自明的;而InvalidCastException似乎是因为您在版本低于1809的操作系统上运行代码

于1809年增加。您可以成功编译代码,因为您已经安装了适用于1809的SDK,但是在运行时,如果您没有事先检查,那么如果运行时不支持该代码,则该代码将失败

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

在这种情况下,您可以将Min版本设置为1809,以强制执行此应用程序只能安装在1809或更高版本上。或者,您可以通过编写来检查操作系统对API的支持,通过这种方式,您可以将Min version保持在所需的最低版本,以适应更广泛的设备。

如果您愿意,您只需使用XAML页面转换,它也与Min version 10240兼容: 只需在右页面左页面XAML源代码的下面几行

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

如果愿意,您可以简单地使用XAML页面转换,它还与min版本10240兼容: 只需在右页面左页面XAML源代码的下面几行

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


无效强制转换异常的确切错误是什么?从哪种类型转换为哪种类型?它表示无法将“Windows.UI.Xaml.Media.Animation.SlideNavigationTransitionInfo”类型的对象转换为“Windows.UI.Xaml.Media.Animation.IslideNavigationTransitionInfo”类型无效转换异常的确切错误是什么?从哪种类型转换到哪种类型?它表示无法将类型为“Windows.UI.Xaml.Media.Animation.SlideNavigationTransitionInfo”的对象强制转换为类型为“Windows.UI.Xaml.Media.Animation.IslideNavigationTransitionInfo”。这似乎是个问题。感谢您提供如此全面的答案+1。它还帮助我解决了与此操作系统版本问题相关的其他问题。然而,另一个解决方案很简单,消除了向后兼容性问题,我认为这对谷歌来说更好。这似乎就是问题所在。感谢您提供如此全面的答案+1。它还帮助我解决了与此操作系统版本问题相关的其他问题。然而,另一种解决方案很简单,并且消除了向后兼容性问题,我认为它对谷歌更好。