эффективная обработка изменений ориентации для всех элементов управления с небольшим изменением кода - PullRequest
0 голосов
/ 11 февраля 2010

У меня есть проект Windows Mobile, построенный на C #.

У меня есть много готовых форм с различными элементами управления, от Listviews до Editfields. Когда пользователь меняет ориентацию, некоторые элементы обновляются неправильно. Например, столбцы Listview одинаковы и не учитывают новое изменение ширины экрана (появляются полосы прокрутки или заполнена половина экрана).

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

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

1 Ответ

1 голос
/ 11 февраля 2010

Я предполагаю, что большинство ваших элементов управления используют DockStyle, и это даст вам 90% пути в плане обновления графического интерфейса при изменении ориентации. Для ListView вам нужно добавить код.

Вы можете добавить обработчик событий в Form.Resize и добавить код для изменения размера столбцов ListView. Вы можете сказать портрет против ландшафта, сравнивая ширину и высоту. Есть также способ добавить обработчик событий для фактического изменения ориентации, но это взаимодействие, и я не помню код от руки. Form.Resize должно быть достаточно для большинства случаев.

Вы можете посмотреть пример здесь

...