Получить границы для всех мониторов в приложении UWP - PullRequest
0 голосов
/ 16 мая 2018

Как можно получить границы для каждого физического дисплея из приложения UWP?Я имел обыкновение делать это:

System.Windows.Forms.Screen.AllScreens;

Я видел примеры, использующие

DisplayInformation.GetForCurrentView();

Но это дает только размер экрана, на котором в данный момент выполняется приложение.У меня есть приложение для вертикального экрана, которое я создаю, и я бы хотел, чтобы оно всегда запускалось на моем вертикальном мониторе, а не на основном горизонтальном мониторе.Я понимаю, что приложения UWP должны быть независимы от разрешения, но здесь это не так.Это приложение, предназначенное для работы на очень специфическом дисплее.

Пожалуйста, это только вопрос UWP. Этот вопрос был написан за 6 лет до того, как UWP была вообще чем-то.Это не дубликат.

1 Ответ

0 голосов
/ 17 мая 2018

Похоже, что в настоящее время в 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);
    }
}

К сожалению, свойства устройства не содержат информацию о разрешении, которую вы могли бы использовать.

...