Почему мой TabControl игнорирует мой ItemPanelTemplate?

Я использовал ItemsPanelTemplate для других элементов управления, таких как ListBox, поэтому я решил, что сделать то же самое для TabControl будет просто.

По-видимому, я что-то пропустил, а TabControl полностью игнорирует то, что я помещаю в ItemsPanelTemplate.

У меня есть xaml, который выглядит примерно так:

<tabcontrol tabstripplacement="Right" itemssource="{Binding Components}">
 <tabcontrol.itemspanel>
 <itemspaneltemplate>
 <wrappanel>
 </wrappanel></itemspaneltemplate>
 </tabcontrol.itemspanel>
</tabcontrol>

Я попытался заменить WrapPanel на UniformGrid, чтобы увидеть, есть ли разница, и он ведет себя одинаково. У меня есть ControlTemplate для TabItem, но я попытался удалить его, и это не имело значения, поэтому я не думаю, что это повлияло на мою проблему.

1 ответ

Вероятно, вы хотите перезаписать Template, а не ItemsPanel

Вы можете перезаписать TabControl.ItemTemplate (или TabItem.Template), чтобы изменить внешний вид вкладки вверху, TabControl.ContentTemplate, чтобы изменить шаблон, используемый для содержимого вкладки, или TabControl.Template, чтобы изменить общий шаблон TabControl.

Я даже не знал, что TabControl имеет ItemPanel. Я всегда использовал это с ItemsControl, где ItemsPanel влияет на какой элемент управления содержит элементы коллекции. Если TabControl имеет это свойство, я ожидаю его только потому, что он унаследовал его от некоторого базового класса

licensed under cc by-sa 3.0 with attribution.