【问题标题】:TabControl Width Height issueTabControl 宽度高度问题
【发布时间】:2012-08-07 14:35:24
【问题描述】:

我正在使用没有指定高度和宽度的 TabControl。 实际上,TabControl 的高度取当前选项卡的高度。

我不希望 TabControl 自动调整它的大小。我希望它采用最大标签的大小(高度和宽度)。

我该怎么做?

谢谢。

【问题讨论】:

  • 也许发布您的标记,然后我们可以看到问题出在哪里。

标签: wpf size height width tabcontrol


【解决方案1】:

TabControl 的大小将由其 parent 容器控件设置,该控件负责其子项的布局,并将为许多布局属性指定默认值。

例如,如果您将TabControl 放在(垂直)StackPanel 内,您会发现它占用的垂直空间最小。如果您的标签周围有Grid,它们将填满可用空间。

或者,您可以使用其他容器手动设置VerticalAlignment="Top",这通常会覆盖您看到的行为。 (很可能您的布局面板默认为Stretch。)

【讨论】:

  • 我的 TabControl 在网格中,但网格的大小由其子项定义。我的网格必须保持当前状态。所以尺寸会自动调整。我尝试将 TabControl 高度和宽度绑定到网格高度和宽度,但网格扩展为无限...
  • 然后按照我的建议尝试VerticalAlignment="Top"
  • 对不起,我刚刚重读了你的问题,发现我理解错了。即使切换到较小的选项卡,您也希望控件的大小保持固定?我不确定这是否可以通过默认行为轻松实现 - 修复选项卡的大小或将选项卡控件的外观更改为不显示边框会更容易。
  • 是的,这就是我想做的。我会尝试更好地解释并且只说高度:我的网格没有固定的高度,它会适应它的内容。这个网格的内容是动态的,所以我事先不知道它会有多高。我的 TabControl 位于此网格的列中。第一个选项卡大于第二个选项卡。当我选择第二个选项卡时,TabControl 的高度和网格缩小了。但我需要网格保持其大小(作为 TabControl)。谢谢
  • @user1589871 正如 Dan 所说,这不会那么简单。给你发邮件XAML,我们也许可以帮助你。我认为如果您将第二个 TabControl 的高度绑定到第一个 TabControls 高度,这可能是可能的。像这样的东西:Height="{Binding RelativeSource=ParentTabControl, Path=Height}"
【解决方案2】:

因为有些人要求提供实际的 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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多