为什么我的TabControl忽略了我的ItemsPanelTemplate?

时间:2011-11-17 19:18:36

标签: wpf tabcontrol itemspanel itemspaneltemplate

我在其他控件上使用了ItemsPanelTemplate,例如ListBox,所以我认为对TabControl做同样的事情很简单。

显然,我错过了某些内容,而TabControl完全忽略了我在ItemsPanelTemplate中的内容。

我有xaml看起来有点像这样:

<TabControl TabStripPlacement="Right" ItemsSource="{Binding Components}">
     <TabControl.ItemsPanel>
          <ItemsPanelTemplate>
               <WrapPanel />
          </ItemsPanelTemplate>
     </TabControl.ItemsPanel>
</TabControl>

我已尝试将WrapPanel替换为UniformGrid以查看是否存在差异且行为相同。我ControlTemplate有一个TabItem,但我尝试删除它并没有任何区别所以我认为这不会影响我的问题。

1 个答案:

答案 0 :(得分:5)

您可能希望覆盖Template,而不是ItemsPanel

您可以覆盖TabControl.ItemTemplate(或TabItem.Template)以更改顶部选项卡的外观TabControl.ContentTemplate,以更改用于选项卡内容的模板,或{{ 1}}改变TabControl的整体模板。

我甚至不知道TabControl有一个ItemsPanel。我只使用过ItemsControl,其中ItemsPanel会影响包含集合中项目的控件类型。如果TabControl具有该属性,我希望它只是因为它从某个基类继承它