Animation WP8方向更改动画

Animation WP8方向更改动画,animation,windows-phone-8,Animation,Windows Phone 8,向我的Windows Phone 8应用程序添加方向更改动画的最简单方法是什么?我对本地应用程序中的一些东西很感兴趣,比如消息、日历等。我在寻找一个快速简单的解决方案,我发现唯一有效的是NuGet中的DynamicChanges库,但是Windows Phone 8上的帧速率有一个很大的问题。您可以使用Windows.Phone.Toolkit并处理方向更改,如下所示: 我将在这里复制链接文章的源代码部分,以防页面脱机。它包括跟踪当前方向的附加逻辑,以便动画匹配更改: public部分类主页:

向我的Windows Phone 8应用程序添加方向更改动画的最简单方法是什么?我对本地应用程序中的一些东西很感兴趣,比如消息、日历等。我在寻找一个快速简单的解决方案,我发现唯一有效的是NuGet中的DynamicChanges库,但是Windows Phone 8上的帧速率有一个很大的问题。

您可以使用Windows.Phone.Toolkit并处理方向更改,如下所示:

我将在这里复制链接文章的源代码部分,以防页面脱机。它包括跟踪当前方向的附加逻辑,以便动画匹配更改:

public部分类主页:PhoneApplicationPage
{
页面定位;
//建造师
公共主页()
{
初始化组件();
this.OrientationChanged+=新的事件处理程序(MainPage_OrientationChanged);
lastOrientation=这个方向;
}
void主页面\u方向已更改(对象发送方,方向更改Deventargs e)
{
PageOrientation newOrientation=e.方向;
Debug.WriteLine(“新方向:+newOrientation.ToString());
//方向为(顺时针)‘向上’、‘景观右’、‘景观左’
RotateTransition transitionElement=新的RotateTransition();
开关(新方向)
{
案例页面方向。横向:
案例PageOrientation.LandscapeRight:
//从肖像向上(即顺时针方向)或从景观左侧过来?
if(lastOrientation==PageOrientation.up)
transitionElement.Mode=逆时针旋转TransitionMode.In90;
其他的
transitionElement.Mode=180顺时针旋转TransitionMode.In180;
打破
案例PageOrientation.LandscapeLeft:
//从风景区过来,对吗?
if(lastOrientation==PageOrientation.LandscapeRight)
transitionElement.Mode=180逆时针旋转TransitionMode.In180;
其他的
transitionElement.Mode=旋转TransitionMode.In90顺时针;
打破
案例页面方向。纵向:
案例PageOrientation.Up:
//从景观左边还是景观右边过来?
if(lastOrientation==PageOrientation.LandscapeLeft)
transitionElement.Mode=逆时针旋转TransitionMode.In90;
其他的
transitionElement.Mode=旋转TransitionMode.In90顺时针;
打破
违约:
打破
}
//执行转换
PhoneApplicationPage PhoneApplicationPage=(PhoneApplicationPage)(((PhoneApplicationFrame)Application.Current.RootVisual)).Content;
ITransition transition=transitionElement.GetTransition(phoneApplicationPage);
transition.Completed+=委托
{
transition.Stop();
};
transition.Begin();
lastOrientation=newOrientation;
}
}