Почему мой TabControl игнорирует мой ItemsPanelTemplate? - PullRequest
3 голосов
/ 17 ноября 2011

Я использовал 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 Ответ

5 голосов
/ 17 ноября 2011

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

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

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

...