2016-10-28 2 views
0

Ich bekomme ein seltsames Verhalten, wenn ich die Schritte von anderen SO Antworten zum Erstellen von Stil Artikel Kopfzeilen. MitWPF TabItem HeaderTemplate Stil Anwendung inkonsistent

<Style TargetType="{x:Type TabItem}"> 
    <Setter Property="HeaderTemplate"> 
     <Setter.Value> 
      <DataTemplate DataType="{x:Type TabItem}"> 
       <buttons:MyButtonControl Content="{TemplateBinding Content}" /> 
      </DataTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

Und eine Registerkarte wie folgt

<TabControl> 
    <TabItem Header="Buttons"> 
     <local:Buttons /> 
    </TabItem> 
    <TabItem Header="Labels"> 
     <local:Labels /> 
    </TabItem> 
</TabControl> 

ich eine Registerkarte Kontrolle zu bekommen, die wie dieser

Tab control

sieht Wie erhalte ich den Stil für alle gelten Tab-Kopfzeilen? Wie entferne ich den Standard-Tab-Header-Stil um meine Datentabelle?

EDIT

Wenn ich den Inhalt stoppt zeigt sich die Vorlage anstatt die Header-Template-Stil, aber die Grenze geht weg auf den Kopf zumindest das funktioniert.

<Style TargetType="{x:Type TabItem}"> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="{x:Type TabItem}"> 
       <buttons:MyButtonControl Content="{TemplateBinding Content}" /> 
      </DataTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

Tab Control after edit

+0

Was ist ''? – haindl

+0

Es ist ein benutzerdefiniertes Steuerelement, das direkt von Button erbt. –

+0

Warum sollte jemand diese Frage ablehnen und nicht kommentieren? –

Antwort

1

erscheint Der fehlende Teil ein ContentPresenter mit der ContentSource Eigenschaft zu haben Header auf.

(auch eine Schaltfläche in der Kopfzeile mit verhindert, dass die Registerkarte angeklickt auf, weil die Schaltfläche das Click-Ereignis isst.)

Dieser Code korrekt anzeigt.

<Style TargetType="TabItem"> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="{x:Type TabItem}"> 
       <Border> 
        <ContentPresenter ContentSource="Header"> 
         <ContentPresenter.ContentTemplate> 
          <DataTemplate> 
           <TextBlock Text="{TemplateBinding Content}" /> 
          </DataTemplate> 
         </ContentPresenter.ContentTemplate> 
        </ContentPresenter> 
       </Border> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style>