WPF espaciamiento control de ficha entre cabeceras
-
18-09-2019 - |
Pregunta
El comportamiento predeterminado de la WPF TabControl es colocar los encabezados Tab adyacentes entre sí, sin ningún espacio vacío en el medio. Lo que si quería especificar una brecha entre las cabeceras? ¿Hay que definir una plantilla de control para esto? Soy relativamente nuevo en el PMA y cualquier ayuda se agradece.
Gracias
Solución
Creo que tendrá que definir una plantilla de control personalizado para el TabItem, tal vez incluso una para el TabControl. Aquí está un ejemplo de una TabItem que utiliza un espaciador para una cierta separación.
<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>
Con suerte que es un empujón en la dirección correcta; usted todavía tendrá que añadir que como un recurso de estilo y hacer referencia a ella desde su TabControl -.> TabItem
Otros consejos
Es fácil de añadir espacio por hacerlo en el diseñador. Seleccione la ficha que desea mover, comenzando con la ficha más a la derecha. A continuación, mantenga Ctrl y utilice la tecla de flecha derecha para mover la lengüeta hacia la derecha. Hacer lo mismo con el resto de las pestañas. A continuación, puede ajustar manualmente el margen en el código XAML.