我希望我在Windows 10上运行的UWP应用程序仅支持横向方向,但这是一个问题。 首先我创立了这个问题:link
GitHub的这个例子工作得很好然后我尝试用复选框设置方向,当我设置这样的方向时:
DisplayOrientations orientations = DisplayOrientations.Landscape;
DisplayInformation.AutoRotationPreferences = orientations;
它也有效。大。
但这是一个问题。如果您尝试按“开始”暂停应用并再次按此按钮以恢复应用,则默认情况下将设置所有旋转首选项。它就像重置旋转首选项一样。
我尝试设置Suspending方法,但它不起作用。尝试使用调试器,没有它,这不起作用。在清单文件中设置“支持的旋转”和“锁定屏幕”声明也不起作用。 有人可以帮帮我吗?
答案 0 :(得分:3)
像lokusking那样捏造。
[DllImport("user32.dll", EntryPoint = "#2507")]
extern static bool SetAutoRotation(bool bEnable);
SetAutoRotation(false);
这是link。
答案 1 :(得分:1)
一些有用的链接: Create Windows apps,App lifecycle,Display 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;
致谢