WPF TabItem内容对齐始终居中

时间:2009-07-01 14:32:14

标签: wpf tabcontrol alignment

我正在尝试将一些内容放在我的TabItem中,但是我无法添加填充TabItem空间的容器。我添加的任何内容都显示在中心位置。

我正在使用WPF工具包中的主题( WhistlerBlue.xaml ),所以我想也许是因为这导致了我这个问题。

我无法移除主题,因为我需要它。我最多可以改变一些东西,但我是WPF的新手,不知道我应该改变什么。

我的TabControl如下所示:

<TabControl Margin="0,71.25,0,206.25" Name="tabControl1" TabStripPlacement="Left">
    <TabItem Name="tabItem1" FlowDirection="LeftToRight" FontSize="22" Height="200" Width="60" >
        <TabItem.Header>
            <StackPanel Orientation="Horizontal" >
                <Image Height="40" Width="40" Margin="20,0,0,0" VerticalAlignment="Center"></Image>
                <TextBlock Margin="15,0,25,0" VerticalAlignment="Center" FontWeight="Bold">
                    Header
                </TextBlock>
            </StackPanel>
        </TabItem.Header>
        <TabItem.Content>
            <StackPanel HorizontalAlignment="Left" VerticalAlignment="Top" Margin="0,0,0,0" >
                <TextBlock>Test</TextBlock>
            </StackPanel>
        </TabItem.Content>
    </TabItem>
</TabControl>

有类似的问题,但它没有答案:In WPF, how do I get the content of a tabItem to fill available space?

有人能帮助我吗? 感谢。

2 个答案:

答案 0 :(得分:21)

好的,我找到了答案。

主题的 .xaml 以TabItem的这些设置开始:

<Style d:IsControlPart="True" TargetType="{x:Type TabItem}">
    <Setter Property="HorizontalContentAlignment" Value="Center"/>
    <Setter Property="VerticalContentAlignment" Value="Center"/>

我已将中心更改为拉伸,问题已解决。

我真的需要从一本书中学习WPF,而不是仅仅尝试一下。

答案 1 :(得分:0)

使用<controls1:TabItem HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" >