事实证明,我在我的应用程序的所有XAML页面中都有完全相同的代码部分。第一段代码负责转换:
<toolkit:TransitionService.NavigationInTransition>
<toolkit:NavigationInTransition>
<toolkit:NavigationInTransition.Backward>
<toolkit:SlideTransition Mode="SlideLeftFadeIn" />
</toolkit:NavigationInTransition.Backward>
<toolkit:NavigationInTransition.Forward>
<toolkit:SlideTransition Mode="SlideLeftFadeIn" />
</toolkit:NavigationInTransition.Forward>
</toolkit:NavigationInTransition>
</toolkit:TransitionService.NavigationInTransition>
...
第二个描述了应用栏:
<phone:PhoneApplicationPage.ApplicationBar>
<shell:ApplicationBar IsVisible="True" IsMenuEnabled="True">
...
有没有办法可以帮助避免这种代码重复?据我所知,这不能用样式或数据模板来解决,还是可以呢?
答案 0 :(得分:2)
导航位可应用于所有页面,无需使用样式进行代码复制。这是我用于其中一个项目的过渡样式。这应放在App.xaml文件
中<Style x:Key="TransitionPageStyle" 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>
</Style>
然后,您可以通过插入此代码段
将此样式应用于所需的任何页面Style="{StaticResource TransitionPageStyle}"
到你的手机:PhoneApplicationPage标签通常位于任何xaml的最顶层。 对于Application bar标签,我认为它确实需要重复,因为它有点像控件本身即。它有自己的属性和方法。