我在其他控件上使用了ItemsPanelTemplate
,例如ListBox
,所以我认为对TabControl
做同样的事情很简单。
显然,我错过了某些内容,而TabControl
完全忽略了我在ItemsPanelTemplate
中的内容。
我有xaml看起来有点像这样:
<TabControl TabStripPlacement="Right" ItemsSource="{Binding Components}">
<TabControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel />
</ItemsPanelTemplate>
</TabControl.ItemsPanel>
</TabControl>
我已尝试将WrapPanel
替换为UniformGrid
以查看是否存在差异且行为相同。我ControlTemplate
有一个TabItem
,但我尝试删除它并没有任何区别所以我认为这不会影响我的问题。
答案 0 :(得分:5)
您可能希望覆盖Template
,而不是ItemsPanel
您可以覆盖TabControl.ItemTemplate
(或TabItem.Template
)以更改顶部选项卡的外观TabControl.ContentTemplate
,以更改用于选项卡内容的模板,或{{ 1}}改变TabControl的整体模板。
我甚至不知道TabControl有一个ItemsPanel。我只使用过ItemsControl,其中ItemsPanel会影响包含集合中项目的控件类型。如果TabControl具有该属性,我希望它只是因为它从某个基类继承它