3

我是 WPF 的新手,我尝试自己重新设置 TabItem 的样式。

在此处输入图像描述

正如您所看到的,选项卡填满了窗口的整个宽度。与我最初的目的不同,我实际上想让标签宽度基于其中的文本。和原来的风格一样,只是重新设计。

我的代码风格:

<Style x:Key="ZoidTab" TargetType="{x:Type TabItem}" >
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate x:Name="ZoidTemplate" TargetType="{x:Type TabItem}">
                <Border Width="Auto" Height="Auto">
                <Grid x:Name="grid">
                    <Polygon
                        Fill="Turquoise"
                        Points="0,1 0.05,0 0.95,0 1,1"
                        Stretch="Fill"
                        Margin="0,0,0,0"
                    />
                    <ContentPresenter x:Name="tabContent" HorizontalAlignment="Center" ContentSource="Header" VerticalAlignment="Center" TextElement.Foreground="#FFFFFFFF"/>
                </Grid>
                </Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
    <Setter Property="FontSize" Value="12pt"/>
</Style>

我想知道我必须修复什么才能获得正确的宽度......谢谢。

4

1 回答 1

2

问题是您Grid没有一个ColumnDefinitions部分来限制唯一列的大小。将其修改为如下所示:

<Grid x:Name="grid">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto" />
    </Grid.ColumnDefinitions>
    ...
于 2013-05-17T14:19:23.640 回答