WPF选项卡控件标题之间的间距问题

6
默认情况下,WPF Tabcontrol 的行为是将选项卡头紧挨着放置在一起,没有间隙。如果我想指定选项卡头之间的间距,我需要定义一个控件模板吗?我对 WFP 相对较新,任何帮助都将不胜感激。
谢谢。
2个回答

10

我认为您需要为TabItem定义一个自定义控件模板,甚至可能是TabControl的模板。这里是一个使用间隔符号的TabItem示例。

<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>
希望这能为您提供正确的方向;您仍需要将其作为样式资源添加并从TabControl->TabItem中引用它。

5

在设计师中添加空格非常容易。从最右边的选项卡开始,选择您想要移动的选项卡。然后按住ctrl键,并使用右箭头键将选项卡向右移动。对其余选项卡执行相同操作。然后,您可以在xaml代码中手动调整边距。


1
不需要设计师。代码中的累积边距也有效,因此[tab]空格[tab][tab]空格[tab]将在第一个制表符处具有左右边距0,然后在最后一个制表符处的两个制表符上分别为x和2x的宽度“space”。其中x是“space”的宽度。 - byteit101

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接