2009-10-21 6 views
0

J'ai actuellement une coutume TabItem qui a un en-tête personnalisé, qui est définie dans le cadre d'un Style comme celui-ci:contenu personnalisé de TabItem WPF

<Setter Property="Template"> 
    <Setter.Value> 
     <ControlTemplate TargetType="{x:Type t:TwitterListTabItem}"> 
      <Border x:Name="Bd" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="0" Margin="0,-2,0,0" > 
       <Grid SnapsToDevicePixels="true"> 
        <ContentPresenter x:Name="Content" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" ContentSource="Header" RecognizesAccessKey="True" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="{TemplateBinding Padding}"/> 
        <Button x:Name="PART_Close" HorizontalAlignment="Right" Margin="0" Padding="4" VerticalAlignment="Top" Width="16" Height="16" Style="{DynamicResource CloseableTabItemButtonStyle}" ToolTip="Close Tab"> 
         <Path x:Name="Path" Stretch="Fill" StrokeThickness="0.5" Fill="#FFFFFF" Data="F1 M 2.28484e-007,1.33331L 1.33333,0L 4.00001,2.66669L 6.66667,6.10352e-005L 8,1.33331L 5.33334,4L 8,6.66669L 6.66667,8L 4,5.33331L 1.33333,8L 1.086e-007,6.66669L 2.66667,4L 2.28484e-007,1.33331 Z " HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/> 
        </Button> 
        <Button x:Name="PART_Number" HorizontalAlignment="Right" Padding="0" Margin="0" VerticalAlignment="Bottom" Width="16" Height="16" Style="{DynamicResource CloseableTabItemNumberStyle}" ToolTip="New Tweets" Content="{TemplateBinding NewTweetsNumber}" /> 
       </Grid> 
      </Border> 

      <ControlTemplate.Triggers> 
       .....Triggers Removed for Shortness.... 
      </ControlTemplate.Triggers> 
     </ControlTemplate> 
    </Setter.Value> 
</Setter 

Maintenant, je veux définir le modèle de la zone de contenu le TabItem. Je ne peux pas savoir comment faire ça. J'ai essayé de définir ContentTemplate, avec un <ControlTemplate> contenant un ListBox, mais cela n'a pas fonctionné.

Alors, comment définir un modèle pour contrôler le contenu?

Merci à l'avance

Répondre

3

Utilisez la propriété TabItem.HeaderTemplate pour votre tête onglet et la propriété TabItem.Template pour le contenu de votre onglet. Example.

+0

donne l'erreur « System.Windows.Controls.ControlTemplate » est pas une valeur valide pour la propriété « System.Windows.Controls.HeaderedContentControl.HeaderTemplate » sur un poseur. – lloydsparkes

+1

Cela a un exemple de la façon d'utiliser les deux propriétés de modèle: http://msdn.microsoft.com/en-us/library/system.windows.controls.headeredcontentcontrol.headertemplate%28lightweight%29.aspx – RandomEngy

0

Il semblerait que vous ayez besoin d'un ContentPresenter de plus pour afficher le contenu. Et vous avez déjà un ContentPresenter qui affiche en-tête.

<ContentPresenter ContentSource="Content"/> 
+0

J'ai regardé cette avant, mais ça ne résout pas mon problème, car ça ne me laisse pas définir les contrôles à l'intérieur – lloydsparkes

Questions connexes