Como posso adicionar conteúdo extra a um WPF TabControl?
Eu tenho um ControlTemplate personalizado para um TabControl WPF que adiciona botões ao lado esquerdo e direito do cabeçalho TabItem. No momento, essa não é uma parte nomeada, pois os comandos do botão estão vinculados no ControlTemplates XAML e não precisam ser expostos fora do ControlTemplate.
Isso funciona bem para um botão, mas e se eu quiser adicionarconteúdo no lado esquerdo (ou direito) dos TabItemHeaders que podem ser vinculados fora do ControlTemplate para que meu TabControl se torne mais flexível?
Minha ideia era subclassificar o TabControl e ter duas partes nomeadas no ControlTemplate e expô-las como propriedades do novo controle;CustomTabControl.LeftContentArea eCustomTabControl.RightContentArea respectivamente. Cada parte nomeada é um ContentPresenter e cada propriedade ContentPresenters Content é exposta pelas propriedades nomeadas acima.
No entanto, quando tentei isso, não consegui colocar o conteúdo nas áreas de conteúdo esquerda e direita.
Editar: Só para esclarecer, incluí uma imagem. Os retângulos vermelhos mostram onde eu quero colocar conteúdo extra.
Atualização: Abaixo está uma captura de tela do progresso que fiz até agora, espero que isso ajude a explicar um pouco mais o meu problema.
A captura de tela mostra meu controle de guia personalizado com duas guias em branco e três botões que estão atualmente no lado direito doTabItem área de cabeçalho. Os botões estão atualmente definidos noTabControls personalizadasControlTemplate I.E. existe umColumnDefinition dentro doControlTemplates Grade que contém umStackPanel que hospeda 3 botões.
O que estou procurando é uma maneira de permitir que o consumidor do controle de guias decida qual conteúdo será inserido na área próxima às guias. POR EXEMPLO. o usuário deve conseguir fazer algo assim:
<local:CustomTabControl>
<local:CustomTabControl.RightContentArea>
<!-- This can be changed to ANY content that the user wants -->
<StackPanel Orientation="Horizontal">
<Button Content="Test" />
<Button Content="Test" />
<Button Content="Test" />
</StackPanel>
</local:CustomTabControl.RightContentArea>
<!-- TabItems are added as normal -->
<TabItem Header="Tab One" />
<TabItem Header="Tab Two" />
</local:CustomTabControl>