DeviL_Dawg Ответов: 2

Размер формы / элемента управления в различных разрешениях


Я использую VS 2019 с VB. Я уже давно пытался придумать способ, чтобы моя форма и элементы управления правильно настраивались при разных разрешениях экрана и различиях видеокарт. Я читал, одно время это было связано с твипами. Должен быть метод/ класс/ функция, которая может справиться с этим. Я тщетно пытался сделать так, чтобы это произошло, но это всегда каким-то образом терпит неудачу. Мне бы очень хотелось, чтобы хоть раз изображение размером 300х400 пикселей было одинаковым на всех мониторах и т. д. Любая помощь очень ценится

Что я уже пробовал:

Я пробовал превращаться в твипы

2 Ответов

Рейтинг:
2

OriginalGriff

Стандартного способа сделать это нет: автоматическое изменение размера элементов управления / форм не работает хорошо, потому что ни один из них не предназначен для этого - WPF есть, но кривая обучения там-кирпичная стена ...

Подумайте об этом: действительно легко заставить кнопку расти и сжиматься, как это делает форма, - просто установите свойство якоря сверху, слева, снизу, справа. Но... шрифт, которым написан текст кнопки, не изменится, если вы специально не выясните, что он теперь слишком большой или слишком маленький, и не определите правильный размер шрифта для этого конкретного элемента управления.
А кнопка рядом с ней имеет другой текст, так что размер шрифта, который вам нужен, не обязательно будет одинаковым. И потом, эти две кнопки выглядят странно рядом друг с другом ...

Формы не предназначены для этого, и это не простая вещь, чтобы сделать вообще - и заставить его выглядеть правильно еще сложнее, если это вообще возможно.

Посмотрите на MS и как они справляются с этим: они вообще не растут и не сжимаются - тогда у них есть центральная "рабочая зона" и закрепляемые области инструментов вокруг нее. Вы думали, что это было просто "как это случилось"? :смеяться:


Рейтинг:
0

Ralf Meier

Я не полностью согласен с решением Гриффа - (извините Грифф)
В пределах форм вы могли бы сделать это - но, конечно, это не так просто.
1-й-это соотношение экрана - есть ли у вас soultion для обработки либо 4:3, либо 16:9 для чувственного изменения размера элементов управления на форме ?
Если Да :
- изменение размера и перемещение всех элементов управления
- У меня есть метод, который может рассчитать максимальный размер шрифта для каждого элемента управления. Таким образом, вы можете перебирать ControlsCollectiopn формы, чтобы получить наименьший MaximumFontSize.
- теперь вы перебираете ControlsCollection и устанавливаете этот размер шрифта для каждого элемента управления

Если вы заинтересованы, я бы предоставил вам этот код ... (или вы посмотрите сюда : https://www.codeproject.com/Answers/5262823/Auto-resize-font-in-a-given-box-visualbasic#answer1 )