Определите, на каком мониторе запущено окно, и узнайте его размер.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Определите, на каком мониторе запущено окно, и узнайте его размер.

Сообщение Anonymous »

Я хочу изменить ширину и высоту моего окна в зависимости от разрешения монитора, на котором работает окно приложения.
Я использую этот код для получения информации о мониторе:< /p>

Код: Выделить всё

var screen = Screen.FromHandle(new WindowInteropHelper(this).Handle);
double Height = screen.WorkingArea.Height;
double Width = screen.WorkingArea.Width;
Я получаю правильное отображаемое имя, но ширина и высота не подходят. Например, мой второй монитор: 2560x1440, а я получаю это: 4267x2400
Спасибо за вашу помощь.
Изменить:
Я думаю, что нашел проблему, это происходит из-за коэффициента масштабирования моих экранов.
Мой основной экран: 250%, а второй: 150%
поэтому я попытался получить масштабирование следующим образом:

Код: Выделить всё

var screen = Screen.FromHandle(new WindowInteropHelper(this).Handle);
int screenWidth = screen.Bounds.Width;
int screenHeight = screen.Bounds.Height;
float dpiX = Graphics.FromHwnd(IntPtr.Zero).DpiX;
float dpiY = Graphics.FromHwnd(IntPtr.Zero).DpiY;
float scaleX = dpiX / 96f;
float scaleY = dpiY / 96f;
Теперь проблема в том, что я получаю только 250%, а не 150% второго монитора

Подробнее здесь: https://stackoverflow.com/questions/785 ... t-his-size
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»