当带有RowSpan的项跨越行时,自动调整大小的网格行会进行奇怪的大小调整

时间:2015-02-18 19:54:48

标签: wpf

所以我基本上有以下代码:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>

    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*"/>
        <ColumnDefinition Width="*"/>
    </Grid.ColumnDefinitions

    <TextBlock Grid.Row="0" Grid.Column="0" Text="Row0"/>
    <TextBlock Grid.Row="1" Grid.Column="0" Text="Row1"/>

    <GroupBox Grid.Row="0" Grid.RowSpan="3" Grid.Column="1">
        <!-- Some stuff here in the GroupBox -->
    </GroupBox>

    <!-- Some other stuff in Grid.Row="3" -->
</Grid>

发生的事情是前两行没有正确调整其中的TextBlocks的大小,它们的大小受GroupBox的影响。我添加第3行基本上只是为了提供溢出空间,因为GroupBox比前两行高一些,但这也使得前两行的大小也增加了,类似于我所期望的那样。星大小。如果我注释掉GroupBox,前两行的大小正确到它们各自的TextBlocks。关于为什么会发生这种情况的任何想法以及如何让它做我认为应该做的事情?

2 个答案:

答案 0 :(得分:1)

为您的行尝试此设置:

<Grid.RowDefinitions>
  <RowDefinition Height="Auto"/>
  <RowDefinition Height="Auto"/>
  <RowDefinition Height="0"/>
  <RowDefinition Height="*"/>
</Grid.RowDefinitions>

答案 1 :(得分:1)

这是我最终做的事情,因为我无法在单个网格中使用它:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>

    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*"/>
        <ColumnDefinition Width="*"/>
    </Grid.ColumnDefinitions>

    <Grid Grid.Row="0" Grid.ColumnSpan="2">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="Auto"/>
        </Grid.RowDefinitions>

        <TextBlock Grid.Row="0" Text="Row0"/>
        <TextBlock Grid.Row="1" Text="Row1"/>
    </Grid>

    <GroupBox Grid.Column="1" Grid.Row="0">
        <!-- Stuff in the GroupBox -->
    </GroupBox>

    <!-- Stuff in Grid.Row="1" -->
</Grid>