Когда вы переопределяете ControlTemplate для любого элемента управления, вы определяете, как он будет выглядеть.<StackPanel>
- это просто элемент управления макетом, который вы используете, это может быть сетка или любой другой элемент управления макетом.
Однако он должен быть там.Если вы посмотрите на иерархию элементов управления WPF, вы увидите несколько типов элементов управления на базовых уровнях после элемента управления, FrameworkElement и т. Д.:
<ContentControl>
<HeaderedContentControl>
<ItemsControl>
<HeaderedItemsControl>
Каждый из них имеет определенные параметры рендеринга и детали.В вашем случае <TabControl>
- это <Selector>
, который является особым типом <ItemsControl>
.Этот селектор имеет Контент и TabPanel, то есть <TabPanel>
и <ContentPresenter>
(который сообщает WPF, где визуализировать Контент).
Лучший способ получить это знание - посмотреть на WPF по умолчанию.шаблоны для каждого элемента управления, например, шаблон TabControl по умолчанию для WPF4: здесь