Приложение Windows Forms имеет плохие пропорции в Windows 7 - PullRequest
2 голосов
/ 31 января 2011

У меня есть приложение C # 3.0 для Windows Forms, созданное на основе VS2008 (ранее перенесенное с C # 1.1), которое отлично смотрится на 32-битном ПК с WinXP, но имеет подбитые пропорции на 64-битном ноутбуке с Win7.

Я нахожу ссылки на отсутствие поддержки Win7 для Tahoma 8, которую использует приложение. Нужно ли мне перепроектировать мой диалог, используя Tahoma 9, чтобы он хорошо отображался во всех 3 ОС?

Вот мои начальные измерения (см) группового поля, содержащего переключатели и кнопку:

ОС, разрешение, GroupBox HxW, RadioButton HxW

XP, 1024 x 768, 7,5 x 6,75, 0,75 x 4,4

Group Box with radios--XP Button--XP

7, 1024 x 768, 6,8 x 6,3, 0,8 x 5,0

7, 1680 x 1050, 4,9 x 4,5, 0,55 x 3,5

Group Box with radios--7 Button--7

Проблема в основном в том, что на разных ОС у группового блока пропорции меняются не так, как у радиоприемников, которые в нем содержатся, так что радиоприемники и метки, которые хорошо вписываются в групповой блок в XP, выходят за пределы (оба x & y ось) на 7. Точно так же текст на кнопке вырос больше, чем на кнопке. Это происходит даже тогда, когда я набираю разрешение 7 ящиков в соответствии с ящиком XP. Шрифт GroupBox больше, чем у радиоприемников, но даже когда я сделал их равными, я не увидел улучшения.

Я думаю, что это как-то связано с тем, что приложение изначально создавалось с более старой версией C #, а затем портировалось. Я говорю это потому, что я только что создал новый (пустой) проект Windows формы, используя VS2008, и для каждого элемента управления в моем приложении, которое не отображается правильно на win7, когда я копирую этот элемент управления в новое приложение и запускаю его на win7, он изменяет размеры правильно. В приложении должно быть свойство высокого уровня, которое наследуют элементы управления.

Что вызывает это и что я могу с этим поделать?

Заранее спасибо.

1 Ответ

2 голосов
/ 25 февраля 2011

Для AutoScaleMode основной формы было установлено значение «Шрифт».Установка его в 'DPI' исправила его (хотя это создавало другие проблемы из-за того, что код не ожидал изменения размера при запуске ... нулевые ссылки, но я могу с этим справиться).

Tergiver получает двойной кредит за указаниеменя на листе свойств формы и для меня так долго, чтобы заметить очевидное свойство:)

...