¿Cómo puedo agregar contenido extra a un WPF TabControl?

Tengo un ControlTemplate personalizado para un WPF TabControl que agrega botones a los lados izquierdo y derecho del encabezado TabItem. Por el momento, esta no es una parte con nombre ya que los comandos de los botones están vinculados en el XAML ControlTemplates y no necesitan exponerse fuera del ControlTemplate.

Esto funciona bien para un botón, pero ¿qué pasa si quiero agregarcontenido al lado izquierdo (o derecho) de TabItemHeaders que se puede vincular fuera de ControlTemplate para que mi TabControl se vuelva más flexible?

Mi idea era subclasificar el TabControl y tener dos partes con nombre en ControlTemplate y exponerlas como propiedades del nuevo control;CustomTabControl.LeftContentArea yCustomTabControl.RightContentArea respectivamente. Cada parte nombrada es un ContentPresenter y cada propiedad ContentPresenters Content está expuesta por las propiedades mencionadas anteriormente.

Sin embargo, cuando probé esto no pude poner contenido en las áreas de contenido izquierda y derecha.

Editar: para ser claros, he incluido una imagen. Los rectángulos rojos muestran dónde quiero poder colocar contenido adicional.

Actualización: a continuación se muestra una captura de pantalla del progreso que he hecho hasta ahora, espero que esto ayude a explicar mi problema un poco más.

La captura de pantalla muestra mi Control de pestañas personalizado con dos pestañas en blanco y tres botones que se encuentran actualmente en el lado derecho delTabItem área del encabezado Los botones están definidos actualmente enTabControls personalizadoControlTemplate ES DECIR. hay unDefinición de columna dentro deControlTemplates Rejilla que contiene unStackPanel que aloja 3 botones.

Lo que estoy buscando es una forma de permitir que el consumidor del control de pestañas decida qué contenido va en el área al lado de las pestañas. P.EJ. el usuario debería poder hacer algo como esto:

<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>

Respuestas a la pregunta(3)

Su respuesta a la pregunta