我将解释我在以下实例上要做的事情:
我有两个页面 - MainPage.xaml(orientation Portrait)和LandscapeLeft.xaml(orientationLeft方向)。
当用户在Lanscape位置旋转手机时,我想从MainPage.xaml
导航到LandscapeLeft.xaml
。
我做了如下:
XAML:
SupportedOrientations="PortraitOrLandscape" Orientation="Portrait"
代码背后的代码:
protected override void OnOrientationChanged(OrientationChangedEventArgs e)
{
switch (e.Orientation)
{
case PageOrientation.LandscapeLeft:
NavigationService.Navigate(new Uri("/LandscapeLeft.xaml", UriKind.RelativeOrAbsolute));
break;
}
base.OnOrientationChanged(e);
}
当我将手机从PortraitUp旋转到LandscapeLeft位置时会发生什么:
首先,MainPage.xaml的内容旋转横向,然后加载LandscapeLeft.xaml。
我想要做的是消除MainPage.xaml的内容轮换过程。它看起来不太好并影响性能。简单地说,当我旋转手机时,我想要加载LandscapeLeft.xaml 没有事先更改MainPage.xaml的内容方向。
请提出任何建议?
答案 0 :(得分:5)
如何将内容放在框架中。 触发方向事件时,请更改帧内容,而不是导航到其他页面。
...
case PageOrientation.LandscapeLeft:
FrmContents= new LandscapeLeft();
...
这应该解决您的性能问题。
答案 1 :(得分:3)
只需将所有功能放在一个页面上,然后根据方向更改显示的内容。
答案 2 :(得分:2)
从“用户”角度来看,我认为你不应该使用Navigation来实现这种效果。
导航与Back按钮紧密相关 - 因此用户通常也不希望将其与设备方向联系起来。
你可能做的事情是:
我编写的应用程序支持两种方向 - 它们似乎表现得非常好 - 您看到的性能问题是什么?