如何从 DeviceInformation.FindAllAsync 个投影结果中找出当前使用的显示设备
How to find out currently using display device from DeviceInformation.FindAllAsync results for Projection
我正在尝试找出用户当前用作 computer/laptop 主显示器的显示器,以便我可以向用户显示可用的显示器,它支持投影并且可以使用ProjectionManager
API。请记住,这是针对 UWP 应用程序的。
DeviceInformationCollection displayDevices = DeviceInformation.FindAllAsync(ProjectionManager.GetDeviceSelector());
DeviceInformation.FindAllAsync(...)
returns合集DeviceInformation
。 DeviceInformation
有 Pairing
属性,但总是 returns false(即使对于主显示器)。
是否有任何其他 API 可用于通过显示获得主要 display/currently?
例如:
- 我从
DeviceInformation
获得的 DeviceId
可用于 BluetoothDevice.FromIdAsync(String DeviceId)
蓝牙特定 API 要求,例如 - Connected
状态。
- 我可以获取当前使用的显示 ID
DeviceId
并与集合中的 DeviceInformation.DeviceId
匹配以丢弃它吗?
ProjectionManager
有类似的东西吗?我已经浏览了 official docs, also github examples,但找不到合适的东西。所以,需要帮助。谢谢。
Is there any other APIs which I can use to get the primary display/currently using display?
ProjectionManager
没有这样的 api 可以检测到主显示器。但你可以使用 DisplayRegion
来检测它。
如果你想获得主要的,你可以检查当前 DisplayRegion WorkAreaOffset
是否是 {0,0}
。它有设备 ID 属性,你可以用它来获得匹配的显示器。
IReadOnlyList<DisplayRegion> displayRegions = ApplicationView.GetForCurrentView().WindowingEnvironment.GetDisplayRegions();
// count all the DisplayRegions that are marked as available to the app for use.
foreach (DisplayRegion displayregion in displayRegions)
{
if (displayregion.IsVisible)
{
Debug.WriteLine(displayregion.WorkAreaOffset);
}
}
用于获取当前使用的显示器。
ApplicationView.GetForCurrentView().GetDisplayRegions()[0]
更多代码请参考官方code sample.
我正在尝试找出用户当前用作 computer/laptop 主显示器的显示器,以便我可以向用户显示可用的显示器,它支持投影并且可以使用ProjectionManager
API。请记住,这是针对 UWP 应用程序的。
DeviceInformationCollection displayDevices = DeviceInformation.FindAllAsync(ProjectionManager.GetDeviceSelector());
DeviceInformation.FindAllAsync(...)
returns合集DeviceInformation
。 DeviceInformation
有 Pairing
属性,但总是 returns false(即使对于主显示器)。
是否有任何其他 API 可用于通过显示获得主要 display/currently?
例如:
- 我从
DeviceInformation
获得的DeviceId
可用于BluetoothDevice.FromIdAsync(String DeviceId)
蓝牙特定 API 要求,例如 -Connected
状态。 - 我可以获取当前使用的显示 ID
DeviceId
并与集合中的DeviceInformation.DeviceId
匹配以丢弃它吗?
ProjectionManager
有类似的东西吗?我已经浏览了 official docs, also github examples,但找不到合适的东西。所以,需要帮助。谢谢。
Is there any other APIs which I can use to get the primary display/currently using display?
ProjectionManager
没有这样的 api 可以检测到主显示器。但你可以使用 DisplayRegion
来检测它。
如果你想获得主要的,你可以检查当前 DisplayRegion WorkAreaOffset
是否是 {0,0}
。它有设备 ID 属性,你可以用它来获得匹配的显示器。
IReadOnlyList<DisplayRegion> displayRegions = ApplicationView.GetForCurrentView().WindowingEnvironment.GetDisplayRegions();
// count all the DisplayRegions that are marked as available to the app for use.
foreach (DisplayRegion displayregion in displayRegions)
{
if (displayregion.IsVisible)
{
Debug.WriteLine(displayregion.WorkAreaOffset);
}
}
用于获取当前使用的显示器。
ApplicationView.GetForCurrentView().GetDisplayRegions()[0]
更多代码请参考官方code sample.