WPF TabControl如何将选项卡放置在右上角位置

6
我有一个WPF TabControl,我想将具有TabStripPlacementTop的选项卡定位在顶部右侧。我通过设置FlowDirectionRightToLeft轻松实现了这一点;但是,我不希望子控件继承RightToLeft FlowDirection
有没有不使用FlowDirection属性来将选项卡定位在顶部右侧的方法?
3个回答

7

这个问题很老了,但是当我谷歌搜索时,它就出现了。答案并不是我想要的。所以我在Expresion Blend中进行了研究。我确定TabPanel需要具有HorizontalAlignment="Right"样式。因此,对于未来而言,只需要这样简单:

<TabControl>
    <TabControl.Resources>
        <Style TargetType="TabPanel">
            <Setter Property="HorizontalAlignment" Value="Right"/>
        </Style>
    </TabControl.Resources>
    <TabControl.Items>
        <TabItem Header="Tab 1"></TabItem>
        <TabItem Header="Tab 2"></TabItem>
        <TabItem Header="Tab 3"></TabItem>
    </TabControl.Items>
</TabControl>

如果你发现任何问题,请告诉我。


5

我不确定这个,你可以尝试创建一个自定义的样式来指定如何布局选项卡。或者,只需在每个单独的选项卡上使用FlowDirection,并将FlowDirection指定为LeftToRight,以使子控件正常显示。


感谢您抽出时间回复!我应该澄清一下,我正在将每个TabItem的FlowDirection设置为LeftToRight,这在显示方面可以实现。我尝试实现以下目标:http://www.grumpydev.com/2009/01/03/taking-wpf-screenshots/。截图已经被捕获,但当TabControl FlowDirection设置为RightToLeft时,它们是反向的。 - Aaron
1
我采纳了您的建议,使用了自定义样式,并设置了TabPanel标记的FlowDirection属性,如下所示:<TabPanel Grid.Row="0" IsItemsHost="true" FlowDirection="RightToLeft"/>。然后我将TabControl的FlowDirection属性保留为RightToLeft。这达到了我想要的效果。再次感谢! - Aaron

0

类似于Rhyous solution,但修复了选项卡的排列方式

<TabControl>
    <TabControl.Resources>
        <Style TargetType="TabPanel">
            <Setter Property="FlowDirection" Value="RightToLeft"/>
        </Style>
    </TabControl.Resources>
    <TabControl.Items>
        <TabItem Header="Tab 1"></TabItem>
        <TabItem Header="Tab 2"></TabItem>
        <TabItem Header="Tab 3"></TabItem>
    </TabControl.Items>
</TabControl>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接