在一个页面通用应用程序wp8.1中支持横向方向

时间:2014-08-06 12:16:20

标签: c# xaml windows-phone-8.1 win-universal-app

如果我在Package.appxmanifest文件中将支持的方向设置为纵向和横向,WP8.1上的默认行为,当我移动设备(旋转模拟器)时,布局会自动更改。

我想在每页的基础上启用此行为(或者,对某些页面禁用此行为)。

我尝试使用此RT示例 - http://msdn.microsoft.com/en-us/library/windows/apps/dn263110.aspx - '如何停止使用LayoutAwarePage':

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    base.OnNavigatedTo(e);
    this.Loaded += PageLoaded;
    this.Unloaded += PageUnloaded;
 }

 private void PageUnloaded(object sender, RoutedEventArgs e)
 {
     Window.Current.SizeChanged -= Window_SizeChanged;
 }

 private void PageLoaded(object sender, RoutedEventArgs e)
 {
     Window.Current.SizeChanged += Window_SizeChanged;
 }

 private void Window_SizeChanged(object sender, Windows.UI.Core.WindowSizeChangedEventArgs e)
 {
 // layout my ui
 }

但是,无论是否将清单添加到清单中,都不会调用Window_SizeChanged。

1 个答案:

答案 0 :(得分:8)

好的,我的谷歌搜索应该更加彻底。要在运行时执行此操作:

   protected override void OnNavigatedTo(NavigationEventArgs e)
    {
      Windows.Graphics.Display.DisplayInformation.AutoRotationPreferences = DisplayOrientations.Portrait
                                                                            | DisplayOrientations.Landscape
                                                                            | DisplayOrientations.PortraitFlipped;
    }

然后取消效果

 protected override void OnNavigatedFrom(NavigationEventArgs e)
    {
      Windows.Graphics.Display.DisplayInformation.AutoRotationPreferences = DisplayOrientations.Portrait;
    }