【发布时间】:2012-08-07 14:35:24
【问题描述】:
我正在使用没有指定高度和宽度的 TabControl。 实际上,TabControl 的高度取当前选项卡的高度。
我不希望 TabControl 自动调整它的大小。我希望它采用最大标签的大小(高度和宽度)。
我该怎么做?
谢谢。
【问题讨论】:
-
也许发布您的标记,然后我们可以看到问题出在哪里。
标签: wpf size height width tabcontrol
我正在使用没有指定高度和宽度的 TabControl。 实际上,TabControl 的高度取当前选项卡的高度。
我不希望 TabControl 自动调整它的大小。我希望它采用最大标签的大小(高度和宽度)。
我该怎么做?
谢谢。
【问题讨论】:
标签: wpf size height width tabcontrol
TabControl 的大小将由其 parent 容器控件设置,该控件负责其子项的布局,并将为许多布局属性指定默认值。
例如,如果您将TabControl 放在(垂直)StackPanel 内,您会发现它占用的垂直空间最小。如果您的标签周围有Grid,它们将填满可用空间。
或者,您可以使用其他容器手动设置VerticalAlignment="Top",这通常会覆盖您看到的行为。 (很可能您的布局面板默认为Stretch。)
【讨论】:
VerticalAlignment="Top"。
XAML,我们也许可以帮助你。我认为如果您将第二个 TabControl 的高度绑定到第一个 TabControls 高度,这可能是可能的。像这样的东西:Height="{Binding RelativeSource=ParentTabControl, Path=Height}"
因为有些人要求提供实际的 xaml,所以这对我有用。它基于@FWillem、@Floc 和其他人的提示,因此所有功劳都归于他们。
<TabControl>
<TabItem Header="SomeTab1">
<Grid Name="MasterTabGrid">
<!-- Some content -->
</Grid>
</TabItem>
<TabItem Header="SomeTab2">
<Grid Height="{Binding ElementName=MasterTabGrid, Path=ActualHeight}" >
<!-- Some other content -->
</Grid>
</TabItem>
</TabControl>
【讨论】: