桌面应用程序的Windows 8方向

时间:2014-05-20 22:56:01

标签: windows windows-8 windows-runtime orientation

我正在开发使用相机预览流的Windows 8兼容桌面服务。在可转换的笔记本电脑(戴尔xps 12),我遇到了相机的方向问题。基本上我需要与流同步旋转流。我使用Windows rt apis(SimpleOrientationSensor,DisplayProperties,DisplayInformation)来获取此方向信息。

如果我只使用SimpleOrientationSensor,那并不总是与Windows桌面同步更改。有时桌面方向被锁定,而SimpleOrientationSensor会触发事件,但桌面不会改变方向(笔记本电脑模式)。

我尝试使用DisplayProperties,但它只报告" landscape"从服务运行时,根据http://msdn.microsoft.com/en-us/library/windows/apps/windows.graphics.display.displayproperties.aspx,不推荐使用DisplayProperties:"在Windows 8.1之后,DisplayProperties可能会被更改或不可用于发布。相反,请使用DisplayInformation。"

如果我尝试从我的桌面应用程序中使用DisplayInformation.GetForCurrentView(),我会得到一个异常" Windows.Graphics.Display:必须在与CoreWindow"相关联的线程上调用GetForCurrentView。 / p>

我可以使用SimpleOrientationSensor,但我想知道这些可转换笔记本电脑中的笔记本电脑模式(锁定方向)与平板电脑模式(任何方向)是否存在事件或属性。任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:0)

更新

我找到了GetSystemMetrics()API,它似乎不能很好地工作(错误处理错误)。还找到了一个注册表项:HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ PriorityControl ConvertibleSlateMode DWORD,这似乎更可靠,这是我正在实现的。

我还发现了这篇文章:https://software.intel.com/en-us/articles/detecting-slateclamshell-mode-screen-orientation-in-convertible-pc