如何让一些标签左对齐而其他标签对齐? (Wpf中的TabControl)

时间:2011-12-13 17:51:23

标签: wpf wpf-controls tabcontrol tabitem

我有一个tabcontrol,我想把一些tabitem标题对齐到左边,其他标题对齐到右边。就像在这个模拟截图中一样:

http://img269.imageshack.us/img269/8894/tabcontrol.png

我已经尝试过了:

  • 样式:我可以使用以下方法对齐tabitem:

align wpf tabcontrol strip

但是我找不到混合左右对齐标签项的方法。

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

此时我没有想法。

3 个答案:

答案 0 :(得分:2)

您可以尝试覆盖TabPanel的模板,但是如果这不起作用,您将不得不覆盖TabControl.Template。可以找到默认控件模板here

修改

刚刚测试过,TabPanel没有您可以覆盖的模板,因此最好的办法是覆盖TabControl.Template以使用您自己的Panel来托管TabItems。

答案 1 :(得分:0)

感谢" Andrew Hanlon",您可以使用Blend编辑TabControl模板。

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

它适用于我。

答案 2 :(得分:0)

我最终在左侧和右侧的标签之间插入了一个隐藏的标签,以将它们分开。 很简单,几乎可以满足我的要求,但是大小不是自动的。

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