如何使一些选项卡左对齐,而另一些选项卡右对齐?(wpf中的TabControl)

如何使一些选项卡左对齐,而另一些选项卡右对齐?(wpf中的TabControl),wpf,wpf-controls,tabcontrol,tabitem,Wpf,Wpf Controls,Tabcontrol,Tabitem,我有一个tabcontrol,我想将一些tabitem标题向左对齐,其他标题向右对齐。就像这个模拟截图: 我已经尝试过的: 样式:我可以使用以下命令右对齐选项卡项: 但我还没有找到一种方法来混合左右对齐的选项卡项 使用两个选项卡控件:我可以有两个重叠的选项卡控件,一个是左对齐的选项卡,另一个是右对齐的选项卡。困难在于让他们转换。当用户单击选项卡标题时,Click或MouseDown不会持续触发(即使Ishitvisible=true)。SelectionChanged不起作用,因为如果

我有一个tabcontrol,我想将一些tabitem标题向左对齐,其他标题向右对齐。就像这个模拟截图:

我已经尝试过的:

  • 样式:我可以使用以下命令右对齐选项卡项:

但我还没有找到一种方法来混合左右对齐的选项卡项

  • 使用两个选项卡控件:我可以有两个重叠的选项卡控件,一个是左对齐的选项卡,另一个是右对齐的选项卡。困难在于让他们转换。当用户单击选项卡标题时,Click或MouseDown不会持续触发(即使Ishitvisible=true)。SelectionChanged不起作用,因为如果用户以前在TabControl 2中选择了选项卡“D”,然后转到选项卡“A”并返回到“D”-TabControl 2不知道选择已更改

在这一点上,我没有主意了

您可以尝试覆盖
选项卡面板
的模板,但是如果不起作用,您必须覆盖
选项卡控件.模板
。可以找到默认控件模板

编辑

刚刚测试过,而且
TabPanel
没有可以覆盖的模板,因此您最好覆盖
TabControl.template
,以使用您自己的面板托管TabItems。

谢谢“Andrew Hanlon”,您可以使用Blend编辑
TabControl
模板

  • TabPanel
    替换为
    DockPanel
  • 然后添加
    HorizontalAlignment=“Right”

它对我很有用。

我最后在左右两侧的选项卡之间插入了一个隐藏的选项卡来分隔它们。 简单,几乎可以满足我的需求,但大小不是自动的

<TabItem IsEnabled="False" Visibility="Hidden">
  <TabItem.Header>
      <Label Content=" " Width="200"/>
  </TabItem.Header>
</TabItem>


当用户单击选项卡标题时,单击或鼠标向下不会持续触发-会发生什么情况<代码>选择已更改…
应该发生什么?请给出正在发生的行为和目标行为的示例。“header”不会触发MouseDown事件。您可以将文本块作为标题内容,但它比完整标题小,因此有时会捕获单击,有时不会。SelectionChanged仅在用户更改该选项卡控件中的选项卡时才会激发。如果从一个选项卡控件选项卡更改回第一个选项卡控件选项卡,则该选项卡控件不会注册SelectionChanged事件,因为对于它,选择没有更改。(这有意义吗?如果没有,最好制作一个虚拟应用程序并自己尝试)他不需要处理子项(TabItems)的布局吗?模板似乎更注重外观,而不是孩子们的位置@jberger
TabItems
托管在
TabPanel
中,我不确定是否可以覆盖它以不同方式显示项目。我刚测试过,你不能,所以我猜最好的选择是覆盖
TabControl.Template
明白了。解决方案是使用链接中描述的Tab.control模板代码,但将TabPanel(x:Name=“HeaderPanel”)更改为网格,并设置列定义(宽度自动、自动、自动、*、自动)。然后,您可以为每个选项卡项设置Grid.Column=“?”。查看此处后,我将选项卡面板替换为DockPanel,它可以根据需要工作,而不受网格列的限制。谢谢