如何为TabItem标题设置最大宽度?

3
嗨,我需要为选项卡控件的标题指定静态宽度。这些名称是动态生成的,因此可能会得到150个字符的内容。我知道我可以使用前10个字符或类似的方法来截取字符串,但我不想采用简单的方式:P
P.D
答案对我的问题没有起作用,实际上它什么也没做。
3个回答

2
<TabControl>
    <TabItem>
        <TabItem.Header>
            <TextBlock Width="100" Text="slad asdljlajksdflajsdf;ljlj;asdlljsaldkjlasdfjkl"/>
        </TabItem.Header>
    </TabItem>
    <TabItem>
        <TabItem.Header>
            <TextBlock Width="75" Text="slad asdljlajksdflajsdf;ljlj;asdlljsaldkjlasdfjkl"/>
        </TabItem.Header>
    </TabItem>
</TabControl>

1

对我来说,设置 TextBlock.MaxWidth 很顺利。我在 ItemTemplate 中使用它,例如:

<TabControl.ItemTemplate>
    <DataTemplate DataType="viewModels:ITabViewModel">
        <TextBlock Text="{Binding DisplayName}" ToolTip="{Binding ToolTip}"
            TextTrimming="CharacterEllipsis" MaxWidth="150" />
    </DataTemplate>
</TabControl.ItemTemplate>

标签的宽度在130到180像素之间似乎是比较合适的。Chrome浏览器的标签大约使用了130像素,而Visual Studio的代码文件标签则使用了约180像素。 - mkoertgen

0
另一个可能的解决方案:
    <TabControl>
        <TabControl.Resources>
            <Style TargetType="{x:Type TabItem}">
                <Setter Property="HeaderTemplate">
                    <Setter.Value>
                        <DataTemplate>
                            <TextBlock Text="{Binding}" MaxWidth="200" />
                        </DataTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
        </TabControl.Resources>
    </TabControl>

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