WPF Registersteuer Abstand zwischen headers
-
18-09-2019 - |
Frage
Das Standardverhalten des WPF TabControl ist die Tab-Header benachbart zueinander zu platzieren, ohne Leerraum dazwischen. Was passiert, wenn ich eine Lücke zwischen den Header angeben wollte? Muss ich dafür eine Steuervorlage definieren? Ich bin relativ neu in WFP und jede Hilfe ist willkommen.
Danke
Lösung
Ich glaube, Sie müssen eine benutzerdefinierte Steuervorlage für den TabItem definieren, vielleicht sogar einen für die TabControl. Hier ist ein Beispiel eines TabItem, die einen Abstandshalter für einige Trennung verwendet.
<Style
x:Key="SpacedTab"
TargetType="{x:Type TabItem}">
<Setter
Property="Template">
<Setter.Value>
<ControlTemplate
TargetType="{x:Type TabItem}">
<Border
x:Name="Spacer"
Width="Auto"
Height="Auto"
Padding="0 0 5 0"
Margin="0 0 0 0"
BorderBrush="Transparent"
BorderThickness="0">
<Border
x:Name="Border"
MinWidth="150"
Width="Auto"
Height="30"
Background="Gray"
BorderBrush="DarkGray"
BorderThickness="0,0,0,0"
CornerRadius="6,6,0,0"
Cursor="Hand"
VerticalAlignment="Bottom">
<ContentPresenter
x:Name="ContentSite"
TextElement.FontSize="10pt"
TextElement.FontFamily="Arial"
TextElement.Foreground="Black"
VerticalAlignment="Center"
HorizontalAlignment="Center"
ContentSource="Header"
Margin="8,3,8,3"
Width="Auto"
Height="Auto" />
</Border>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Wir hoffen, dass ein Schubs in die richtige Richtung; Sie werden nach wie vor, dass als Stil-Ressource hinzufügen müssen und es von Ihrem TabControl Referenz -.> TabItem
Andere Tipps
Es ist einfach Raum hinzuzufügen, indem es in dem Designer zu tun. Wählen Sie die Registerkarte, die Sie verschieben möchten, indem Sie mit der Registerkarte ganz rechts beginnen. Dann ctrl halten und die rechte Pfeiltaste verwenden, um die Registerkarte nach rechts zu bewegen. Machen Sie dasselbe mit dem Rest der Reiter. Dann können Sie manuell die Marge im XAML-Code anpassen.