TabControl.VerticalAlignment = 拉伸不做任何事情

Posted

技术标签:

【中文标题】TabControl.VerticalAlignment = 拉伸不做任何事情【英文标题】:TabControl.VerticalAlignment = Stretch doesn't do anything 【发布时间】:2010-12-30 08:02:54 【问题描述】:

我正在尝试使 TabControl 根据其外部空间自动调整大小(它在 StackPanel 中):

<Window x:Class="Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Height="100">
    <Grid>
        <StackPanel>
            <TabControl 
                BorderBrush="Red" 
                BorderThickness="2" 
                VerticalAlignment="Stretch" 
                VerticalContentAlignment="Stretch">

                <TabItem Header="Tab1"/>
                <TabItem Header="Tab2"/>
            </TabControl>
        </StackPanel>
    </Grid>
</Window>

上面的 sn-p 产生以下窗口,而我希望红色边框到达窗口的底部:

【问题讨论】:

【参考方案1】:

问题是你的StackPanel。 StackPanels 不会拉伸他们的孩子。

改为使用DockPanel:最后一个孩子将被拉伸以填充剩余空间(请参阅LastChildFill,默认为true)。

<Window x:Class="Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Height="100">
    <Grid>
        <DockPanel>
            <TabControl BorderBrush="Red" BorderThickness="2">
                <TabItem Header="Tab1"/>
                <TabItem Header="Tab2"/>
            </TabControl>
        </DockPanel>
    </Grid>
</Window>

不需要显式设置VerticalAlignment,因为its default value 已经是Stretch

相关链接:Panels Overview on MSDN

【讨论】:

我用了你的代码,什么都没有; TabControl 的垂直大小未按预期停靠;我认为问题在于 TabControl 而不是 StackPanel。 非常奇怪......在这里工作得非常好:我将上面的代码复制并粘贴到 XAML 窗口中 -> 红色边框延伸到整个窗口。你能再试一次吗? 您的解决方案确实有效。不幸的是,根据我的窗户的情况,有很多父母没有成功。我的特定问题的解决方案是将其嵌入到 Grid 中,将行的高度设置为 *.感谢您的所有帮助。【参考方案2】:

您可以将高度绑定到父窗口的实际高度。

<TabControl 
    BorderBrush="Red" 
    BorderThickness="2"
    Height="Binding Path=ActualHeight,
         RelativeSource=RelativeSource Mode=FindAncestor,
            AncestorType=x:Type Window">
    <TabItem Header="Tab1"/>
    <TabItem Header="Tab2"/>
</TabControl>

【讨论】:

以上是关于TabControl.VerticalAlignment = 拉伸不做任何事情的主要内容,如果未能解决你的问题,请参考以下文章