我已经下载了最新的Windows.Phone.Controls.Toolkit并在app.xaml.cs改变WP7如何使用工具包TransitionFrame?
RootFrame = new PhoneApplicationFrame();
到
RootFrame = new TransitionFrame();
我预计在页面之间的过渡部分的变化,但没有发生任何事情。
我是否需要做更多的事情来实现更有趣的转换?
我已经下载了最新的Windows.Phone.Controls.Toolkit并在app.xaml.cs改变WP7如何使用工具包TransitionFrame?
RootFrame = new PhoneApplicationFrame();
到
RootFrame = new TransitionFrame();
我预计在页面之间的过渡部分的变化,但没有发生任何事情。
我是否需要做更多的事情来实现更有趣的转换?
您通过添加补充参考xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit"
,并尝试旋转门效应:
<toolkit:TransitionService.NavigationInTransition>
<toolkit:NavigationInTransition>
<toolkit:NavigationInTransition.Backward>
<toolkit:TurnstileTransition Mode="BackwardIn"/>
</toolkit:NavigationInTransition.Backward>
<toolkit:NavigationInTransition.Forward>
<toolkit:TurnstileTransition Mode="ForwardIn"/>
</toolkit:NavigationInTransition.Forward>
</toolkit:NavigationInTransition>
</toolkit:TransitionService.NavigationInTransition>
<toolkit:TransitionService.NavigationOutTransition>
<toolkit:NavigationOutTransition>
<toolkit:NavigationOutTransition.Backward>
<toolkit:TurnstileTransition Mode="BackwardOut"/>
</toolkit:NavigationOutTransition.Backward>
<toolkit:NavigationOutTransition.Forward>
<toolkit:TurnstileTransition Mode="ForwardOut"/>
</toolkit:NavigationOutTransition.Forward>
</toolkit:NavigationOutTransition>
</toolkit:TransitionService.NavigationOutTransition>
你想有过渡效果的每个页面。
或者您可以尝试其他效果,例如:幻灯片,旋转,旋转和滚动。
一旦您指定要使用TransitionFrame那么你需要告诉什么样的转变,你想进入和外出页面的应用程序,这里是我使用的一些典型的XAML:
首先注册了命名空间的页面的标题:
xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit"
然后设置过渡
<toolkit:TransitionService.NavigationInTransition>
<toolkit:NavigationInTransition>
<toolkit:NavigationInTransition.Backward>
<toolkit:TurnstileTransition Mode="BackwardIn"/>
</toolkit:NavigationInTransition.Backward>
<toolkit:NavigationInTransition.Forward>
<toolkit:SlideTransition Mode="SlideRightFadeIn" />
</toolkit:NavigationInTransition.Forward>
</toolkit:NavigationInTransition>
</toolkit:TransitionService.NavigationInTransition>
你可以尝试不同的过渡类型鳍d最适合您的应用程序的。
HTH, Rupert。
为后人:
如果你不希望有写所有的XAML的每一页,创建一个辅助类,并在页面的构造函数应用的过渡。
Transitions.cs
public class Transitions {
/// <summary>
/// Set the Turnstile transition for this UIElement
/// </summary>
/// <param name="element"></param>
public static void UseTurnstileTransition(UIElement element)
{
TransitionService.SetNavigationInTransition(element,
new NavigationInTransition() {
Backward = new TurnstileTransition() {
Mode = TurnstileTransitionMode.BackwardIn
},
Forward = new TurnstileTransition() {
Mode = TurnstileTransitionMode.ForwardIn
}
}
);
TransitionService.SetNavigationOutTransition(element,
new NavigationOutTransition() {
Backward = new TurnstileTransition() {
Mode = TurnstileTransitionMode.BackwardOut
},
Forward = new TurnstileTransition() {
Mode = TurnstileTransitionMode.ForwardOut
}
}
);
}
}
ExamplePage.xaml.cs
public partial class ExamplePage : PhoneApplicationPage {
public ExamplePage() {
InitializeComponent();
Transitions.UseTurnstileTransition(this);
}
}
太棒了!非常有帮助 - 谢谢。 – James
整齐,+1 - 虽然通常我更喜欢用一种风格来做,因此即使在查看XAML时也是如此。我已经添加了该效果的答案。 –
只是注意扩大对@ subkamran的答案。取而代之的是辅助类的,你也可以使用样式:
<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>
<Setter Property="toolkit:TransitionService.NavigationOutTransition">
<Setter.Value>
<toolkit:NavigationOutTransition>
<toolkit:NavigationOutTransition.Backward>
<toolkit:SlideTransition Mode="BackwardOut"/>
</toolkit:NavigationOutTransition.Backward>
<toolkit:NavigationOutTransition.Forward>
<toolkit:TurnstileTransition Mode="ForwardOut"/>
</toolkit:NavigationOutTransition.Forward>
</toolkit:NavigationOutTransition>
</Setter.Value>
</Setter>
</Style>
哦,我绝对错过了我需要的东西添加到每个页面。谢谢!! – Sam