espaçamento controlo separador WPF entre cabeçalhos
-
18-09-2019 - |
Pergunta
O comportamento padrão do WPF tabControl consiste em colocar a guia cabeçalhos adjacentes uns aos outros, sem qualquer espaço vazio entre eles. E se eu quisesse para especificar uma lacuna entre os cabeçalhos? Eu tenho que definir um modelo de controle para isso? Eu sou relativamente novo para o PMA e qualquer ajuda é apreciada.
Graças
Solução
Eu acredito que você precisará definir um modelo de controle personalizado para o TabItem, talvez até mesmo um para o TabControl. Aqui está um exemplo de um TabItem que usa um espaçador para alguma separação.
<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>
Esperamos que é uma cutucada na direção certa; você ainda vai precisar de acrescentar que como um recurso de estilo e referenciá-lo de seu TabControl -.> TabItem
Outras dicas
É fácil de adicionar espaço ao fazê-lo no designer. Selecione a guia que você deseja mover, começando com a guia mais à direita. Em seguida, segure Ctrl e usar a seta para a direita para mover a guia para a direita. Faça o mesmo com o resto das guias. Depois, você pode ajustar manualmente a margem no código XAML.