繁体   English   中英

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

[英]How to lock tablet screen rotation in UWP app?

我希望在Windows 10上运行的UWP应用仅支持横向方向,但这是一个问题。 首先,我提出了这个问题: 链接

来自GitHub的示例运行正常,然后我尝试使用复选框设置方向,当我设置方向时,如下所示:

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

它也可以。 大。

但这是一个问题。 如果您尝试按开始以暂停应用程序,然后再次按以恢复应用程序,则所有轮播首选项都将默认设置。 就像重置轮播首选项一样。

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

卢斯金说的那样。

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

SetAutoRotation(false);

这是一个链接

在此处输入图片说明 一些有用的链接: 创建Windows应用程序应用程序生命周期显示方向示例

如果在平板电脑模式下仅在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;

问候

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM