gpt4 book ai didi

c# - 如何右对齐最后一个 TabControl 选项卡?

转载 作者:行者123 更新时间:2023-11-30 14:37:35 25 4
gpt4 key购买 nike

有没有办法使 TabControl 上的最后一个选项卡右对齐?想要将最后一个与前几个分开。

谢谢!

最佳答案

这篇文章可能很旧,但我在寻找同一个问题的答案时偶然发现了它,所以我想我会分享我最终得到的快速而肮脏的解决方案。

我只是将两个 TabControl 放在一个网格中,并将其中一个上的 TabPanel 右对齐(感谢 Meleak):

 <Grid>
<TabControl x:Name="_tabsRight" GotFocus="OnTabFocused" >
<TabControl.Resources>
<Style TargetType="TabPanel">
<Setter Property="HorizontalAlignment" Value="Right"/>
</Style>
</TabControl.Resources>

<TabItem x:Name="JustAHiddenTabItemToDeselectTheRealOne" Visibility="Hidden" />

<!-- Last tab -->
<TabItem Header="Last one" >
<!-- Last content... -->
</TabItem>

</TabControl>
<TabControl x:Name="_tabsLeft" GotFocus="OnTabFocused" >

<!-- First tab -->
<TabItem Header="1st" >
<!-- First content... -->
</TabItem>

<!-- Second tab -->
<TabItem Header="2nd" >
<!-- Second content... -->
</TabItem>

</TabControl>
</Grid>

然后,在 OnTabFocused 事件处理程序中,我们需要在用户单击 TabItem 时将最底部的 TabControl 置于最前面:

private int _zIncrementor = 0;
/// <summary>
/// Hack to make two TabControls act as one.
/// </summary>
private void OnTabFocused(object sender, RoutedEventArgs e)
{
var tab = (TabControl)sender;
var otherTab = (tab == _tabsLeft) ? _tabsRight : _tabsLeft;

Grid.SetZIndex(tab, ++_zIncrementor);
otherTab.SelectedItem = null;
}

关于c# - 如何右对齐最后一个 TabControl 选项卡?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9058320/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com