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

C# 如何在UWP应用程序中锁定平板电脑屏幕旋转?,c#,uwp,screen-orientation,windows-10-universal,C#,Uwp,Screen Orientation,Windows 10 Universal,我希望我的UWP应用程序在Windows10上运行,只支持横向方向,但这里有一个问题。 首先,我提出了这个问题: GitHub中的这个示例运行良好,然后我尝试使用复选框设置方向,当我这样设置方向时: DisplayOrientations orientations = DisplayOrientations.Landscape; DisplayInformation.AutoRotationPreferences = orientations; 它也有效。太好了 但这里有一个问题。若你们试图按

我希望我的UWP应用程序在Windows10上运行,只支持横向方向,但这里有一个问题。 首先,我提出了这个问题:

GitHub中的这个示例运行良好,然后我尝试使用复选框设置方向,当我这样设置方向时:

DisplayOrientations orientations = DisplayOrientations.Landscape;
DisplayInformation.AutoRotationPreferences = orientations;
它也有效。太好了

但这里有一个问题。若你们试图按“开始”暂停应用程序,再按一次恢复应用程序,所有旋转首选项都将默认设置。它的工作原理类似于重置旋转首选项

我试图设置挂起方法,但不起作用。尝试了调试器,但没有调试器,这是行不通的。在清单文件中设置“支持的旋转”和“锁定屏幕”声明也不起作用。 有人能帮我吗?

一些有用的链接:

如果在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
        }));
    }
}
像我说的那样


这里有一个答案。

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

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;

关于

它不起作用。将断点放入
应用程序\u Current\u Resuming
,它只是没有被调用。您尝试过显示方向示例吗?是的,我尝试过。我尝试将该方法添加到
应用程序.Current.Resuming
中。但当我按下启动按钮时,不会调用Resuming方法。您应该真正阅读链接应用程序生命周期。。这还取决于您暂停的页面。。这只是主页的一个示例。您也可以放置此。Resuming+=App\u Resuming;在App.xaml.cs中的App()构造函数中,但如果使用多个视图,则还有一些事情要做。首先挂起,然后继续(运行后visual studio顶部的生命周期事件)…查看帮助是否对该链接发表评论:“任何地方都不记录或支持此功能。它不会通过商店认证,甚至任何类型的Win32认证。请不要(永远)使用它。MSFT保留在任何时候删除它的权利,“感觉像是不安全的黑客”。
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;