Лучший способ построить формы ввода данных в WPF? - PullRequest
10 голосов
/ 11 апреля 2011

При создании форм WPF, которые используются для ввода данных (например, набор меток рядом с набором текстовых полей и комбинированных списков), я видел два метода:

  • Создайте главную сетку, разделите ее на два столбца и добавьте строки с Height="auto" для каждого поля и две строки для верхнего и нижнего колонтитула (и кнопки отправки), и каждая метка и текстовое поле имеют свою собственную строку.
  • Другой метод заключается в создании главной панели стека и внутри нее горизонтальной панели стека для каждой пары метка-текстовое поле.

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

РЕДАКТИРОВАТЬ: Хенк сказал, что я должен определить лучше, и я думаю, что я согласен, под лучшим я имею в виду проще всего поддерживать, создавать, выравнивать и добавлять или удалять поля по мере изменения требований.

Пока единственным критерием, по которому сетка лучше, является простота выравнивания.

Ответы [ 3 ]

3 голосов
/ 11 апреля 2011

безусловно первый метод!

он хорошо выровнен, особенно с использованием SharedSizeGroup, поэтому вы можете иметь одинаковое выравнивание, например, в разных групповых полях.

1 голос
/ 12 апреля 2011

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

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

0 голосов
/ 12 апреля 2011

Отказ от ответственности: я собираюсь сказать немного о продукте моей собственной компании в моем блоге, который дает сравнение и проблемы в поддержании форм.

И у Grid, и у StackPanel есть кошмары Maintanence, поэтому мы пошли по-разному при создании макета формы, и я изложил наш подход здесь по этой ссылке,

http://akashkava.com/blog/296/advanced-data-form-with-ui-atoms-on-wpf-and-silverlight/

...