C # - проблема макета на Windows XP Professional - PullRequest
2 голосов
/ 15 сентября 2009

Я занимаюсь разработкой приложения на C # с .NET Framework 2.0.

Проблема в том, что на компьютере моего клиента раскрываются элементы управления, меняется макет (изменяется положение элементов управления), иногда кнопки полностью пропускаются. Это происходит даже на формах с 2-3 текстовыми полями, 2-3 кнопками и некоторыми метками. Я перепробовал много расследований. Я попытался показать сообщение в событии изменения размера формы. Но это не называется. После копания немного больше, казалось, что в файле Designer.cs, хотя ResumeLayout (false) вызывается для формы, но это вызывает расширение / расположение элементов управления.

Мой клиент использует Windows XP Professional на своем ноутбуке Dell. Он может воспроизвести проблему на других ноутбуках с Windows XP Professional. Но не в других ОС (например, Windows XP Home или Windows Vista). На моем рабочем столе с Windows XP Professional это не воспроизводится.

Как решить эту проблему?

Ответы [ 2 ]

4 голосов
/ 15 сентября 2009

Вы уверены, что это как-то связано с ОС? Это больше похоже на проблему точек на дюйм. «Нормальный» - 96 точек на дюйм. Если форма была разработана с разрешением 96 точек на дюйм, она, вероятно, выглядела бы по-другому при других настройках.

См. эту статью , чтобы узнать, как проверить / изменить настройки dpi в XP.

Редактировать: Я забыл упомянуть, что вы можете использовать TableLayoutPanel Control для макета вашей формы. Использование возможностей авторазмера поможет сохранить «нормальный» внешний вид при любом значении dpi.

3 голосов
/ 15 сентября 2009

Вероятно, это связано с настройкой DPI в Windows XP.

Если вы используете стандартную настройку (96) точек на дюйм, но они настроены с использованием альтернативной (например, 120), это часто приводит к путанице в макетах элементов управления.

«Правильный» способ справиться с этим - попытаться автоматически создать макеты, используя элементы макета, которые могут изменять размеры по мере необходимости. Это сложно в Windows Forms (и одна из вещей, которые исправляет WPF).

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