我在APP.XAML中包含了一些代码来定义页面转换的一些样式。它包括在下面。
在我的WP7应用程序中,我有三个主页--比如M1、M2和M3。对于它们中的每一个,我在它们的XAML中都标记为使用'TurnstileTransition‘样式,当我在它们之间导航时,它们都工作得很好。但是,我也有一个用于创建新项的子页面--比如我从M2和M3导航到的M2。我的理解是,导航到这样的页面适合幻灯片转换,对于这些页面,我使用的是“SlideTransition”样式。
当我导航到S1时,它似乎将导航从M2 (旋转栅门)向前移出,然后导航ForwardIn for S1 (幻灯片)。看上去有点乱。
我的问题是
谢谢
<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>发布于 2011-10-22 08:32:05
如果您想要有更多的页面转换(取决于您要导航到的页面),您应该重写OnNavigatingFrom方法,比如M2页面。在页面类ignoreTransition = false中添加一个bool变量(这将告诉我们是否应该执行转换),然后在OnNavigatedFrom方法中检查IgnoreTransition == false,如果ignoreTransition为false,则取消导航e.Cancel=true;,并找到您要导航到e.Uri的页面。如果Uri发送到另一个M页面,则启动转轨转换,否则启动幻灯片转换。
接下来,您需要订阅转换的Completed事件,并使用lambda表达式导航到要导航的页面:e.Uri。同时设置ignoreTransition = true;,否则您将在一个循环中结束。
最后但并非最不重要的一点是:重写OnNavigatedFrom并将ignoreTransition设置为true。
https://stackoverflow.com/questions/7291329
复制相似问题