获取UWP应用程序中所有监视器显示的界限

时间:2018-05-16 19:34:12

标签: c# uwp uwp-xaml multiple-monitors

如何从UWP应用程序获取每个物理显示的界限?我曾经能够做到这一点:

System.Windows.Forms.Screen.AllScreens;

我见过使用

的例子
DisplayInformation.GetForCurrentView();

但是只能获得当前运行应用程序的屏幕大小。我有一个我正在构建的垂直屏幕应用程序,我希望它始终在我的垂直监视器而不是我的主要水平监视器上启动。我知道UWP应用程序应该是解决方案不可知的,但这不是这里的情况。这是一个专门用于非常特殊的显示器的应用程序。

请,这只是UWP问题。 This Question是在UWP出现之前6年写的。这不是重复。

1 个答案:

答案 0 :(得分:1)

目前在UWP中确实没有可以实现这一目标的API。您可以将此想法发布到UWP UserVoice,以便将其视为您想要的内容。

您可以做的最好的事情是查询应用程序运行的监视器的分辨率,并使用ProjectionManager枚举所有监视器:

var deviceSelector = ProjectionManager.GetDeviceSelector();            
var devices = await DeviceInformation.FindAllAsync(deviceSelector);
foreach (var device in devices)
{
    Debug.WriteLine("Kind: {0} Name: {1} Id: {2}", device.Kind, device.Name, device.Id);
    foreach (var property in device.Properties)
    {
        Debug.WriteLine( property.Key + " " + property.Value);
    }
}

不幸的是,设备属性不包含您可以使用的分辨率信息。