我有三个xaml页面,例如MainPage.xaml(空),PageOne.xaml和PageTwo.xaml。 加载MainPage后,我加载PageOne.xaml的内容。 我希望实现的是在方向改变时从PageOne导航到PageTwo。
我已经使用此线程成功实现了这一点 - Navigate to another page when orientation changed通过更改框架中的内容来消除内容轮换过程:(((PhoneApplicationFrame)Application.Current.RootVisual))。Content = new PageOne() ;
问题是: 在纵向模式下触发应用程序时,PageOne按预期以纵向模式显示。但是当我将手机旋转到横向时,MainPage按预期加载PageTwo的内容,但是在纵向模式。我希望它加载横向模式。
我已经将XAML中的SupportedOrientations(在代码隐藏中尝试过)设置为PageOne的Portrait和PageTwo的Landscape,但这并没有帮助。我猜电话在动态加载内容时无法检测方向变化。有什么建议吗?
使用NavigationService看起来并不好看 - 在第一页旋转然后导航。
我也希望在页面之间实现旋转动画,但我认为在我的情况下这是不可能的。
以下是MainPage.xaml.cs中的一些代码:
private void PageOrientationChanged(object sender, OrientationChangedEventArgs e)
{
if ((e.Orientation & PageOrientation.Portrait) == (PageOrientation.Portrait))
{
(((PhoneApplicationFrame)Application.Current.RootVisual)).Content = new PageOne();
}
else
{
(((PhoneApplicationFrame)Application.Current.RootVisual)).Content = new PageTwo();
}
}
PageTwo在MainPage处于横向模式时加载,但显示为纵向模式。好像我只在纵向模式下加载PageTwo。
答案 0 :(得分:0)
试试这个,它应该有效
private void PhoneApplicationPage_OrientationChanged(
object sender, OrientationChangedEventArgs e)
{
if ((e.Orientation & PageOrientation.Portrait) == (PageOrientation.Portrait))
{
//Load Data for Portrait PageOrientation
}
else
{
//Load Data for Landscape PageOrientation
}
}