Подтвердить что ты не робот

Winforms разных размеров в разных средах

В течение некоторого времени несколько человек, которые использовали мое приложение, жаловались на какое-то странное поведение в том, как рисуется WinForm. Форма имеет один фиксированный splitcontainer с panel1. Я не смог воспроизвести их проблемы до сегодняшнего дня.

Я только что установил приложение на ноутбуке с 32-разрядной версией предприятия Win7. (приложение создано и работает без проблем на моем компьютере с 64-разрядной версией Win7 ent.)

Чтобы узнать, что происходит, я скопировал файлы проекта на ноутбук и открыл его с помощью Visual Studio 2012, чтобы узнать, что происходит. Тем не менее, я ошеломлен, так как не знаю, что с этим делать.

На dev. (мой 64-битный win7 ent), спецификации для форм (и разделенных контейнеров) следующие:

  • Высота формы: 383
  • Ширина формы: 707
  • Высота сплит-контейнера: 321
  • Разделительный контейнер Ширина: 691
  • Расстояние сплиттера: 380

Когда я загружаю проект на ноутбук, спецификации меняются следующим образом:

  • Высота формы: 419
  • Ширина формы: 859
  • Высота сплит-контейнера: 397
  • Разделительный контейнер Ширина: 921
  • Расстояние сплиттера: 380

Теперь я могу, наконец, понять разочарование, когда некоторые люди не видят программу как то, как она должна быть видна.

На 32-битной машине сплиттер частично перекрывает несколько кнопок, что явно затрудняет использование программы, так как они не могут видеть текст.

Есть ли причина, почему это происходит?

Я имею в виду, если исходный код установлен на определенное значение размера, разве не так, как должно быть независимо от того, где программа запускается? (Учитывая, что пользователь не изменяет размер, конечно).

И самое главное, могу ли я решить эту проблему без необходимости создавать две отдельные версии?

4b9b3361

Ответ 1

Они могут запускать свои системы на разных DPI (Dots Per Inch), и поэтому это изменяет способ позиционирования и масштабирования элементов управления в форме Windows из-за параметров масштабирования и влияет на размер шрифта.

Вы можете посмотреть панель управления | Внешний вид и персонализация | Дисплей, чтобы найти эти настройки:

  • Меньше - 100% = 96 DPI
  • Средний - 125% = 120 DPI
  • Larger - 150% = 144 DPI

Вы можете просмотреть параметры масштабирования WinForms, если он имеет эффект DPI и что нужно настроить соответствующим образом.