Важно, чтобы вы не указывали координаты и размеры в пикселях.Это исключает использование Control.Top
и Control.Left
, что и делает дизайнер, когда вы «просто размещаете» элементы управления на форме.
Чтобы получить пользовательский интерфейс, который работает с различными настройками DPI, в значительной степенивсе должно быть динамически измерено.Для элементов управления должно быть включено Control.AutoSize
.Но просто включение AutoSize
полностью испортит ваш макет, поскольку позиция управления все еще будет статичной.
Чтобы динамически позиционировать элементы управления, вы можете использовать элементы управления контейнером, такие как FlowLayoutPanel
и TableLayoutPanel
(с размерами, установленными на AutoSize
).Обычные элементы управления внутри них будут просто перемещаться по форме в соответствии с автоматически определенными размерами.
Как видите, это не просто, требует немного опыта, чтобы разобраться в этом, и требует огромногообъем тестирования (виртуальные машины с различными настройками DPI отлично работают).Но я думаю, что это обязательно нужно сделать, так как я всегда раздражаюсь, если на моем ноутбуке что-то выглядит глупо и глючит.