В WPF / XAML каждый контейнерный элемент управления должен содержать элемент управления макетом? - PullRequest
3 голосов
/ 17 марта 2009

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

Возьмите групповой блок, например. Я могу либо добавить элементы управления непосредственно в групповой блок, либо я могу использовать элемент управления макетом и поместить элемент управления макетом внутри группового блока, а затем элементы управления в нем.

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

Учитывая это, лучше ли всегда использовать элементы управления макетом, или есть случаи, когда вполне допустимо бросать элемент управления внутри групповых блоков и элементов вкладок без такового? Каковы будут отрицательные последствия этого, если таковые имеются?

Ответы [ 2 ]

2 голосов
/ 17 марта 2009

Нет негативных последствий в использовании панелей Layout, потому что даже если вы не указали их, в VisualTree есть панель по умолчанию. Если вы не используете его явно, ваш XAML может выглядеть чище.

Большинство элементов ItemsControls имеют StackPanel в качестве макета по умолчанию. Таким образом, в основном вопрос в том, хотите ли вы, чтобы поведение StackPanel упорядочивало ваши дочерние элементы или нет?

1 голос
/ 17 марта 2009

Джоби прав, что в любом случае это не имеет никакого значения, но мой инстинкт инстинкта всегда заключался в том, чтобы использовать Контейнер для хранения нескольких элементов управления. Во многом это обусловлено моей потребностью в высоко структурированной организации, но в основном это имеет смысл для меня.

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

Я не знаю, является ли это «Лучшей практикой», но она, безусловно, лучше всего подходит для меня.

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