如何在UWP应用程序中锁定平板电脑屏幕旋转?

时间:2016-06-22 12:37:55

标签: c# uwp screen-orientation windows-10-universal

我希望我在Windows 10上运行的UWP应用程序仅支持横向方向,但这是一个问题。 首先我创立了这个问题:link

GitHub的这个例子工作得很好然后我尝试用复选框设置方向,当我设置这样的方向时:

DisplayOrientations orientations = DisplayOrientations.Landscape;
DisplayInformation.AutoRotationPreferences = orientations;

它也有效。大。

但这是一个问题。如果您尝试按“开始”暂停应用并再次按此按钮以恢复应用,则默认情况下将设置所有旋转首选项。它就像重置旋转首选项一样。

我尝试设置Suspending方法,但它不起作用。尝试使用调试器,没有它,这不起作用。在清单文件中设置“支持的旋转”和“锁定屏幕”声明也不起作用。 有人可以帮帮我吗?

3 个答案:

答案 0 :(得分:3)

lokusking那样捏造。

[DllImport("user32.dll", EntryPoint = "#2507")]
extern static bool SetAutoRotation(bool bEnable);

SetAutoRotation(false);

这是link

答案 1 :(得分:1)

enter image description here一些有用的链接: Create Windows appsApp lifecycleDisplay orientation sample

如果在平板电脑模式下在Package.appxmanifest(双击/横向)中设置此项是不够的,那么您可以尝试在应用恢复时设置内容。

public sealed partial class MainPage : Page
{
    public MainPage()
    {
        this.InitializeComponent();

        Application.Current.Resuming += Application_Current_Resuming;
    }

    private async void Application_Current_Resuming(object sender, object e)
    {
        await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, new Windows.UI.Core.DispatchedHandler(() =>
        {
            // Your code here
        }));
    }
}

答案 2 :(得分:0)

我认为最好的解决方案是: 您可以将应用程序锁定为横向模式,例如:

Windows.Graphics.Display.DisplayInformation.AutoRotationPreferences = Windows.Graphics.Display.DisplayOrientations.Landscape;

然后,当您要将自动旋转返回给用户时,请使用以下代码:

Windows.Graphics.Display.DisplayInformation.AutoRotationPreferences = Windows.Graphics.Display.DisplayOrientations.Landscape | Windows.Graphics.Display.DisplayOrientations.LandscapeFlipped
                | Windows.Graphics.Display.DisplayOrientations.None | Windows.Graphics.Display.DisplayOrientations.Portrait | Windows.Graphics.Display.DisplayOrientations.PortraitFlipped;

致谢