不要重复自己 - XAML 和 WPF
本文关键字:XAML WPF 自己 | 更新日期: 2023-09-27 18:35:15
事实证明,我在应用程序的所有 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">
...
有没有一种方法可以帮助避免这种代码重复?据我了解,这不能用样式或数据模板解决,或者可以吗?
导航位可以使用 Style 应用于所有页面,而无需重复代码。这是我用于其中一个项目的过渡样式。这应该放在你的 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的最顶部。至于应用程序栏标签,我相信它确实需要重复,因为它有点像控件本身,即。它有自己的属性和方法。