В течение некоторого времени я был в порядке с Screen.PrimaryScreen.Bounds.Size
, но на моем компьютере с Windows7, подключенным к моему телевизору с большим экраном, он дал мне неправильные значения.
Я читал в другом месте, чтобы попробовать SystemInformation.PrimaryMonitorSize
, но это дает те же значения.
Когда я нажимаю правой кнопкой мыши на рабочем столе, чтобы получить разрешение экрана, он говорит 1920x1080
. Вышеуказанные два дают мне 1280x720
.
Я также пробовал версии WPF:
var w = System.Windows.SystemParameters.PrimaryScreenWidth;
var h = System.Windows.SystemParameters.PrimaryScreenHeight;
MessageBox.Show(new Size((int)w, (int)h).ToString());
Размер экрана был изменен с помощью (щелкните правой кнопкой мыши на рабочем столе) Personalize > Desktop
, чтобы быть на 150% (так как экран 60 дюймов, и вы сидите далеко от него).
Как определить это, чтобы можно было изменить значение, возвращаемое из вышеперечисленного?
Примечание. Я обнаружил, как обойти это с помощью щелчка правой кнопкой мыши и настроить совместимость, чтобы отключить виртуализацию DPI, но мне все еще нужно программное решение, поэтому мне не нужно пользователь самостоятельно отрегулирует это: см. http://msdn.microsoft.com/en-us/library/dd464660(VS.85).aspx#dpi_virtualization