Windows phone 8 如何将水平屏幕切换到垂直屏幕

Windows phone 8 如何将水平屏幕切换到垂直屏幕,windows-phone-8,Windows Phone 8,旋转手机屏幕时,如何使垂直(XAML)切换到另一个设计水平(XAML),而不是自动将旧的垂直(XAML)布局到水平(XAML)假设您当前使用的是StackPanel(或类似),并且已经将SupportedOrientations指定为肖像或风景,您需要在网格中设计页面常量,然后捕获方向更改事件并编写代码以在网格中重新定位UI元素 有一个例子展示了这项技术 编辑 您可以通过捕获OrientationChanged事件并使用Frame.Navigate显示不同的页面来更改为不同的XAML,但我认为这

旋转手机屏幕时,如何使垂直(XAML)切换到另一个设计水平(XAML),而不是自动将旧的垂直(XAML)布局到水平(XAML)

假设您当前使用的是
StackPanel
(或类似),并且已经将
SupportedOrientations
指定为
肖像或风景
,您需要在
网格
中设计页面常量,然后捕获
方向更改
事件并编写代码以在网格中重新定位UI元素

有一个例子展示了这项技术

编辑

您可以通过捕获
OrientationChanged
事件并使用
Frame.Navigate
显示不同的页面来更改为不同的XAML,但我认为这会导致一些重复的代码。或者,您可以对页面进行编码,以便只需在
网格中移动项目
,如MSDN exmaple代码所示:

private void PhoneApplicationPage_OrientationChanged(object sender, OrientationChangedEventArgs e)
{
    // Switch the placement of the buttons based on an orientation change.
    if ((e.Orientation & PageOrientation.Portrait) == (PageOrientation.Portrait))
    {
        Grid.SetRow(buttonList, 1);
        Grid.SetColumn(buttonList, 0);
    }
    // If not in portrait, move buttonList content to visible row and column.
    else
    {
        Grid.SetRow(buttonList, 0);
        Grid.SetColumn(buttonList, 1);
    }
}
另一种选择是导航到其他页面-因此在您的肖像页面中,您可能有:

private void PhoneApplicationPage_OrientationChanged(object sender, OrientationChangedEventArgs e)
{
    // Switch to a different page based on an orientation change.
    if ((e.Orientation & PageOrientation.Landscape) == (PageOrientation.Landscape))
    {
        // switch to landscape orientation page
        NavigationService.Navigate(new Uri("/LandscapePage.xaml", UriKind.Relative)); 
    }
}

然后,在横向页面中会有类似的代码,用于检测方向变化并导航回纵向页面。

但是,当两个xaml如此不同时,我该怎么办?旋转屏幕时,我想切换到另一个新的水平(xaml),您能给我一个如何使用框架的示例吗“PhoneApplicationPage_OrientationChanged()”再次抱歉,如果我想使用手机左下角的back键结束程序而不是返回到最后一页,我该怎么办?请看这里--如果您仍然有问题,也许可以将其作为新问题发布,这样您会得到更好的回答。