Зависит ли отображение формы от машины разработки в Visual Studio? - PullRequest
0 голосов
/ 29 января 2009

У меня есть приложение на C # для Windows (т.е. не веб-приложение) в Visual Studio. Первоначальной средой разработки был Dell Latitude D800 с экраном 1920x1200 пикселей. Поскольку большое количество пикселей делало текст очень маленьким, я настроил множество различных шрифтов по умолчанию для удобства чтения.

Я перенес разработку на новый ноутбук, Latitude D630 с дисплеем 1440x900. Приложение было перемещено путем создания нового проекта на новом компьютере и добавления существующих объектов / файлов / и т. Д.

ПРОБЛЕМА в том, что многие из моих форм больше не отображаются равномерно. Некоторые из них теперь слишком велики, так что элементы справа находятся за рамкой, а другие меньше с избыточным пространством справа от рамки. Как будто значение «пикселя» теперь отличается от одной формы к другой. Эти изменения сохраняются, когда исполняемый файл установлен на производственных машинах.

Есть идеи о том, что случилось и как навести порядок? Спасибо.

Ответы [ 4 ]

3 голосов
/ 29 января 2009

Хорошей идеей будет проверить настройку DPI шрифта. По умолчанию он установлен на 96. Его часть ваших окон отображает настройки.

0 голосов
/ 30 января 2009

Некоторые эксперименты показывают, что объявленный размер формы, по-видимому, влияет на размер объектов в масштабе (единицах длины и ширины на дюйм экрана) формы, когда отображается как развернутый дочерний объект MDI.

Я понятия не имею, почему это должно повлиять на это.

0 голосов
/ 30 января 2009

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

К сожалению, на самом деле нет волшебного ответа на вопрос "почему мои формы облажались?" Ваши формы испорчены, потому что независимость от разрешения не была заложена в них. Существует целый ряд возможных проблем: у вас могут быть элементы управления, привязанные к неправильным вещам, кто-то мог бы «исправить» проблему макета, переопределив автоматическое масштабирование элемента управления, на самом деле, это бесконечно.

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

А затем включите это в процесс разработки с самого начала. Одна из причин, по которой у меня нет этих проблем в большом настольном приложении с интенсивным пользовательским интерфейсом, которое я создаю, заключается в том, что я изменил размер каждой формы в программе и меняю их размер во время тестирования все время, чтобы увидеть, Облажаешься Я также тестирую с различными разрешениями экрана как само собой разумеющееся. Это те проблемы, которые действительно трудно решить, когда они станут системными; раннее их обнаружение избавит меня от многих неприятностей.

0 голосов
/ 30 января 2009

Насколько я понимаю, это не объясняет, почему некоторые формы влияют по-другому.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...