Windows phone 7 WP7页面转换
我在APP.XAML中包含了一些代码,用于定义页面转换的一些样式。它包括在下面 在我的WP7应用程序中,我有3个主页——比如M1、M2和M3。对于它们中的每一个,我都在它们的XAML中标记为使用“TurnstileTransition”样式,当我在它们之间导航时,一切都很好。但是,我还有一个子页面,用于创建新项目,比如S1,我从M2和M3导航到S1。我的理解是,导航到这样的页面适合幻灯片转换,对于这些页面,我使用的是“SlideTransition”样式 当我导航到S1时,它似乎会从M2(旋转栅门)拾取向前导航,然后从S1(幻灯片)拾取向前导航。看起来有点乱 我的问题是Windows phone 7 WP7页面转换,windows-phone-7,navigation,transition,Windows Phone 7,Navigation,Transition,我在APP.XAML中包含了一些代码,用于定义页面转换的一些样式。它包括在下面 在我的WP7应用程序中,我有3个主页——比如M1、M2和M3。对于它们中的每一个,我都在它们的XAML中标记为使用“TurnstileTransition”样式,当我在它们之间导航时,一切都很好。但是,我还有一个子页面,用于创建新项目,比如S1,我从M2和M3导航到S1。我的理解是,导航到这样的页面适合幻灯片转换,对于这些页面,我使用的是“SlideTransition”样式 当我导航到S1时,它似乎会从M2(旋转栅
<Style x:Key="TurnstileTransition" TargetType="phone:PhoneApplicationPage">
<Setter Property="toolkit:TransitionService.NavigationInTransition">
<Setter.Value>
<toolkit:NavigationInTransition>
<toolkit:NavigationInTransition.Backward>
<toolkit:TurnstileTransition Mode="BackwardIn"/>
</toolkit:NavigationInTransition.Backward>
<toolkit:NavigationInTransition.Forward>
<toolkit:TurnstileTransition Mode="ForwardIn"/>
</toolkit:NavigationInTransition.Forward>
</toolkit:NavigationInTransition>
</Setter.Value>
</Setter>
<Setter Property="toolkit:TransitionService.NavigationOutTransition">
<Setter.Value>
<toolkit:NavigationOutTransition>
<toolkit:NavigationOutTransition.Backward>
<toolkit:TurnstileTransition Mode="BackwardOut"/>
</toolkit:NavigationOutTransition.Backward>
<toolkit:NavigationOutTransition.Forward>
<toolkit:TurnstileTransition Mode="ForwardOut"/>
</toolkit:NavigationOutTransition.Forward>
</toolkit:NavigationOutTransition>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="SlideTransition" TargetType="phone:PhoneApplicationPage">
<Setter Property="toolkit:TransitionService.NavigationInTransition">
<Setter.Value>
<toolkit:NavigationInTransition>
<toolkit:NavigationInTransition.Backward>
<toolkit:SlideTransition Mode="SlideDownFadeIn"/>
</toolkit:NavigationInTransition.Backward>
<toolkit:NavigationInTransition.Forward>
<toolkit:SlideTransition Mode="SlideUpFadeIn"/>
</toolkit:NavigationInTransition.Forward>
</toolkit:NavigationInTransition>
</Setter.Value>
</Setter>
<Setter Property="toolkit:TransitionService.NavigationOutTransition">
<Setter.Value>
<toolkit:NavigationOutTransition>
<toolkit:NavigationOutTransition.Backward>
<toolkit:SlideTransition Mode="SlideUpFadeOut"/>
</toolkit:NavigationOutTransition.Backward>
<toolkit:NavigationOutTransition.Forward>
<toolkit:SlideTransition Mode="SlideDownFadeOut"/>
</toolkit:NavigationOutTransition.Forward>
</toolkit:NavigationOutTransition>
</Setter.Value>
</Setter>
</Style>
如果您想根据导航到的页面进行更多页面转换,您应该覆盖M2页面的
on navigating from
方法。在页面类中添加bool变量ignoreTransition=false
(这将告诉我们是否应该播放转换),然后在OnNavigatedFrom
方法中检查如果ignoreTransition==false
,如果ignoreTransition为false,则取消导航e.cancel=true
并找到您要导航到的页面e.Uri
。如果Uri指向另一个M页面,则启动旋转栅门转换,否则启动幻灯片转换
接下来,您需要订阅转换的Completed
事件,并使用lambda表达式导航到要导航的页面:e.Uri
。同时设置ignoreTransition=true代码>否则您将以循环结束
最后但并非最不重要的一点:覆盖OnNavigatedFrom
并将ignoreTransition
设置回true