Wpf 在不同位置设置TabItem标题

Wpf 在不同位置设置TabItem标题,wpf,xaml,Wpf,Xaml,你是怎么做到的 我想创建选项选项卡,它位于左下角 但是不知道如何更改Tab2标题的位置 <Grid> <TabControl TabStripPlacement="Left"> <TabControl.Resources> <Style TargetType="TabItem"> <Setter Property=&quo

你是怎么做到的

我想创建选项选项卡,它位于左下角 但是不知道如何更改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>

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


您可以在designer中或在运行时通过以下方法设置其高度

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;
}
void SetDummyTabItemHeight(TabItem dummyItem)
{
var tabPanel=(tabPanel)VisualTreeHelper.GetParent(dummyItem);
var otherItemsActualHeight=tabPanel.Children
.Cast()
.其中(x=>x!=dummyItem)
.Sum(x=>x.实际高度);
dummyItem.Height=tabPanel.ActualHeight-otherItemsActualHeight;
}

你能发布代码的当前状态吗?@user1239299 EditedI我知道没有比这更优雅的方法了?我不知道任何其他简单的解决方案,但你可以在参考源代码中深入研究
TabItem
TabPanel
源代码。非常感谢你,我将使用这种方法