首页 文章

TabControl始终调整为选定的选项卡项?

提问于
浏览
2

我有一个WPF TabControl,包含两个不同宽度和高度的TabItems . 奇怪的是当我在项目之间切换时,TabControl的大小会调整大小以适合所选的标签项 . 例如,如果我单击较小的TabITem,TabControl会变小,如果我选择较大的TabControl,它会变大 .

我认为从用户的角度来看这看起来很愚蠢,而在普通的标签GUI(例如Windows属性)中并非如此 . 是否可以设置宽度和高度以适应最大的项目?我想尝试避免必须设置一个常量值

2 回答

  • 3

    你应该更好地拥有相对于窗口大小的固定TabControl大小,并根据TabControl的大小调整TabItems的大小 .

    编辑:

    确保包含 TabControl 的行或列未自动调整大小 . 如果您的代码如下所示,您的 TabControl 将根据活动 TabItem 调整大小 .

    <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height=".20*"/>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height=".20*"/>
            </Grid.RowDefinitions>
            <TabControl Grid.Row="1" BorderBrush="Red" BorderThickness="1">
                <TabItem Header="Blue">
                    <Rectangle Width="200" Height="200" Fill="Blue"></Rectangle>
                </TabItem>
                <TabItem Header="Black">
                    <Rectangle Width="100" Height="100" Fill="Black"></Rectangle>
                </TabItem>
            </TabControl>
        </Grid>
    

    如果您将上面代码中的 <RowDefinition Height="Auto"/> 行更改为 <RowDefinition Height="*"/> ,它将解决问题 .

    您也可以共享代码,我们可以查看它 .

  • 0

    好吧,如果你不想要一个固定的大小,我看到另一种选择,但这个在性能方面并不便宜 . 您需要知道的是第二个标签需要的实际宽度和高度 . 这意味着您可以将TabControl的高度和宽度绑定到较大项目的DesiredSize以及一些额外空间 . 但由于第二项可能尚未测量(检查IsMeasureValid属性),因此您需要调用UpdateLayout来执行控件的整个布局 .

    但总的来说我真的不建议你走那条路,因为玩布局通常会让人感到痛苦....我知道这不是你要求的,而是来自经验 - >不要这样做 .

    为什么不给出固定大小并添加滚动查看器?或者我们一个dockpanel并将所有东西停靠在某处,并为tabcontrol提供剩余空间,以便它总是填满你的窗口 .

    马丁先生

相关问题