эффективная обработка изменений ориентации для всех элементов управления с небольшим изменением кода

StackOverflow https://stackoverflow.com/questions/2240941

Вопрос

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

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

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

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

Это было полезно?

Решение

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top