2016-08-18 5 views
0

Wie kann ich die erste TabItem in einem TabControl mit einem benutzerdefinierten Stil:Conditional TabItem Styling

<Style TargetType="{x:Type TabControl}"> 
    <Style.Resources> 
     <Style TargetType="{x:Type TabItem}"> 
     ... 

Was ich zum Archiv versuchen, ist die erste TabItem mit einem linken Rand zu bekommen, und die anderen mit margin = 0.

um zu zeigen, was ich tun werde versuchen:

Wie die Registerkarte sieht jetzt: enter image description here

Wie es (Raum vor dem ersten TabItem) aussehen sollte: enter image description here

Ein anderer Ansatz mit den gleichen Ergebnissen ist ebenfalls nützlich.

+0

Sie die 'TabControl' müssen Styling auf der rechten Seite nicht abgeschnitten die 'TabItem' – codeDom

Antwort

1

Was Sie tun können, um dies zu erreichen ist einfach einen unsichtbaren, leer TabItem an erster Stelle hinzufügen:

<TabItem Visibility="Hidden"/> 

Hidden wird dazu führen, dass die Registerkarte nicht angezeigt wird, aber der Platz ist ohnehin für sie reserviert, so es stellt sich heraus, wie so etwas aussehen: enter image description here

der Raum kann einfach durch die Wahl eines Header für die TabItem mit der entsprechenden Menge von Zeichen vergrößert werden

Alternativ können Sie einfach einen gewissen Spielraum zur ersten TabItem selbst

<TabItem Header="TabItem1" Margin="5,0,0,0"> 

hinzufügen, aber das führen könnte, dass der Name des TabItem1 ist

+0

danke für die Idee, ich habe ein Problem, dass alle meine TabItems MVVM verwenden, so kann ich nicht direkt die visuellen Einstellungen ändern ... Gibt es eine Möglichkeit, es auf den Stil für die erste TabItem (etwas wie der CSS-Selektor :: zuerst) – Tiago