Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使选项卡标题对WPF上的标题文本具有灵活性_C#_.net_Wpf - Fatal编程技术网

C# 使选项卡标题对WPF上的标题文本具有灵活性

C# 使选项卡标题对WPF上的标题文本具有灵活性,c#,.net,wpf,C#,.net,Wpf,我对WPF的东西还不熟悉,我自己也尝试过重新设置一个TabItem的样式 正如大家所看到的,标签占据了整个窗口的宽度。与我最初的目的不同,我实际上想使标签的宽度基于其内部的文本。像原来的风格,只是重新设计 我的代码风格: <Style x:Key="ZoidTab" TargetType="{x:Type TabItem}" > <Setter Property="Template"> <Setter.Value>

我对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>


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

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

<Grid x:Name="grid">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto" />
    </Grid.ColumnDefinitions>
    ...

...