spaziatura controllo scheda WPF tra intestazioni
-
18-09-2019 - |
Domanda
Il comportamento predefinito del WPF TabControl è quello di posizionare le intestazioni Tab adiacenti l'uno all'altro, senza alcun spazio vuoto tra. Che cosa succede se ho voluto specificare un divario tra le intestazioni? Devo definire un modello di controllo per questo? Sono relativamente nuovo per il PAM e ogni aiuto è apprezzato.
Grazie
Soluzione
Credo che sarà necessario definire un modello di controllo personalizzato per l'TabItem, forse anche uno per il TabControl. Ecco un esempio di TabItem che utilizza un distanziatore per una certa separazione.
<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>
Si spera che è una spinta nella giusta direzione; sarà ancora bisogno di aggiungere che come una risorsa stile e farvi riferimento dal vostro TabControl -.> TabItem
Altri suggerimenti
E 'facile per aggiungere spazio facendolo nella finestra di progettazione. Selezionare la scheda che si desidera spostare, iniziando con la scheda più a destra. Poi tenere premuto Ctrl e utilizzare il tasto freccia destra per spostare la scheda a destra. Fate lo stesso con il resto delle schede. Quindi è possibile regolare manualmente il margine nel codice XAML.