WPF: Что такое общий контроль контейнера?

В HTML общий контроль контейнера - это DIV. Он ничего не делает сам по себе, но это отличное место, чтобы повесить вещи.

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

Что я должен использовать для WPF?

Ответ 1

Некоторые из наиболее часто используемых контейнеров:

Grid
StackPanel
DockPanel
WrapPanel
Canvas

См. также Обзор панелей MSDN.

Ответ 2

Я думаю, что самое близкое к тому, что вы ищете, это ContentControl. Он не имеет собственного макета и не имеет пользовательского интерфейса по умолчанию (если вы не заставляете его делать один или оба из них), но может принимать любой объект как его свойство Content (WPF UIElement или иначе) и предоставлять любой пользовательский интерфейс для объекта CLR через DataTemplate, присвоенный свойству ContentTemplate. В этом отношении он обеспечивает хорошее место для ввода другого контента (например, div в HTML). Он также является базовым классом для многих стандартных встроенных элементов управления: Button, ListBoxItem, UserControl, Window.

Панели WPF также не работают для заполнителей, потому что они не могут быть шаблонами или у детей установлены привязки, за исключением случаев, когда они содержатся в других элементах управления, которые обрабатывают связанный контент, например ItemsControl - ItemsPresenter - ItemsPanel.