высокие проблемы DPI

У меня есть проблема с дисплеем нашего Приложения Windows.NET при высоких настройках точек на дюйм.

Все формы установлены на AutoScaleMode = DPI, но это не решает все проблемы.

В основном маркировки заканчивают тем, что расширились в размере для привыкания woth шрифт, являющийся больше, но местоположение других средств управления не изменяется, и мы заканчиваем с маркировками, затеняющими другие средства управления или друг друга.

Экран должен быть похожим на это: http://www.manageinvest.com/good.jpg.. и на высоком DPI это заканчивает тем, что было похоже на это: bad.jpg (это - мое первое сообщение, таким образом, мне только разрешают одну ссылку),

Какие-либо предложения?

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

Kristian

6
задан Hans Passant 22 January 2010 в 11:08
поделиться

3 ответа

Теоретически, масштабирование шрифта и DPI в WinForms являются автоматическими. На практике ... не так много.

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

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

  1. не используйте дизайнер вообще. Это довольно больно, но он дает вам необходимое количество контроля над вашей макетом.

  2. Используйте встроенные элементы управления макетом - специфически FlowlayoutPanel и TableLayoutPanel . Эти ребята - ваши лучшие друзья; Я редко делаю все больше в WinForms без них.

В вашем случае я, вероятно, пошел с # 2. На основании захвата экрана, я думаю, было бы довольно легко установить вашу макет в комбинацию TableLayoutPanel и контейнеров FlowLayoutPanel - возможно даже один TableLayoutPanel .

6
ответ дан 10 December 2019 в 00:38
поделиться

Вы должны посмотреть в AutoScalemode и AutoSize функций. В сочетании с составляющими стыковочных способностей вы должны быть в состоянии достичь того, что вы хотите.

У меня была действительно хорошая статья на том, но ссылка мертва ... В любом случае, это должно вас начать:

http://msdn.microsoft.com/en-us/library/ms229605.aspx

http://www.sellsbrothers.com/Writing/winformsautoScaling.htm

http://msdn.microsoft.com/en-us/library/system.windows.forms.autoscalemode.aspx

3
ответ дан 10 December 2019 в 00:38
поделиться

Это может не решить вашу проблему.

Но мы узнали о том, что этикетка и текстовые элементы управления должны быть сложены вертикально, то есть поместите текстовое поле ниже метки, а не рядом с этикеткой. Это решило много проблем для нас, включая поддержку нескольких языков, как ширина текста на разных языках может быть больше, чем текст английского языка

1
ответ дан 10 December 2019 в 00:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: