在不同的地方设置 TabItem 标题

时间:2021-06-02 09:08:48

标签: wpf xaml

TabControl 怎么会这样

TabControl

我想制作位于左下角的选项选项卡 但不知道如何更改 Tab2 的标题位置

<Grid>
    <TabControl TabStripPlacement="Left">
        <TabControl.Resources>
            <Style TargetType="TabItem">
                <Setter Property="Height" Value="50" />
                <Setter Property="Width" Value="50" />
            </Style>
        </TabControl.Resources>
        <TabItem>
            <TabItem.Header>
                <TextBlock Text="Tab1" />
            </TabItem.Header>
            <TabItem.Content>
                <TextBlock Text="Tab1 content" />
            </TabItem.Content>
        </TabItem>
        <TabItem>
            <TabItem.Header>
                <TextBlock Text="Tab2" />
            </TabItem.Header>
            <TabItem.Content>
                <TextBlock Text="Tab2 content" />
            </TabItem.Content>
        </TabItem>
    </TabControl>
</Grid>

1 个答案:

答案 0 :(得分:0)

最简单的解决方案是插入一个不可见的虚拟 TabItem,其高度与最后一个 TabItem 之前的间隙相匹配。

<TabItem Visibility="Hidden"/>

您可以通过以下方法在设计器或运行时设置其高度。

void SetDummyTabItemHeight(TabItem dummyItem)
{
    var tabPanel = (TabPanel)VisualTreeHelper.GetParent(dummyItem);

    var otherItemsActualHeight = tabPanel.Children
        .Cast<TabItem>()
        .Where(x => x != dummyItem)
        .Sum(x => x.ActualHeight);

    dummyItem.Height = tabPanel.ActualHeight - otherItemsActualHeight;
}
相关问题