визуальная студия дизайнер - PullRequest
2 голосов
/ 09 мая 2011

Я научился трудным образом управлять различными настройками DPI, чтобы во время выполнения мои приложения отображались правильно.

Но есть все еще большая проблема со временем разработки Visual Studio. Скажем, я создаю приложение с разрешением 96 т / д и переключаю дисплей на 120 т / д для тестирования.

Теперь, если я открою конструктор форм с разрешением 120 т / д, размер формы будет изменен на 125%, элементы управления перенесены! : - (((

Поэтому я стараюсь избегать повторного открытия форм, но это НЕ хорошее решение, не так ли?

Есть ли какая-либо случайная установка времени для предотвращения изменения размера формы?

Ответы [ 2 ]

2 голосов
/ 28 июля 2011

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

И мы обнаружили, что не можем использовать настройку AutoScaleMode = Dpi.Font.Это будет случайным образом изменять размеры форм, когда мы открываем их в конструкторе.Dpi или None, кажется, не работают.

0 голосов
/ 22 декабря 2016

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

  • Сохранить форму AutoScaleMode = Font.Это работает нормально, если вы управляете остальными правильно.
  • Установите в конструкторе форм: Font = MS Sans; 11px.В основном, укажите ваши шрифты в пикселях, а не в пунктах.Таким образом, Visual Studio не будет ничего масштабировать при изменении DPI системы.
  • В Ctor форм, после InitializeComponent, установите заново: Font = SystemFonts.DefaultFont.Теперь во время выполнения шрифты снова будут использовать размеры на основе точек, и вы получите хороший графический интерфейс с высоким DPI.
  • Включение DPI-Awareness либо через манифест, либо с помощью функции API SetProcessDPIAwareness

Подробности моего (трудного) учебного курса можно найти в моем блоге: http://www.sgrottel.de/?p=1581&lang=en

...