在网格中设置动态行高

时间:2011-06-25 08:51:46

标签: windows-phone-7

我有一个网格,我想要两行,这样下排高52像素,上排高度占据剩余空间。例如,如果网格的高度为100像素,则上排为48像素,下排为52像素。

Grid的高度保证至少为53像素。目前,我的XAML代码如下:

<Grid Height="{TemplateBinding Height}">
    <Grid.RowDefinitions>
        <RowDefinition Height="*"></RowDefinition>
        <RowDefinition Height="52"></RowDefinition>
    </Grid.RowDefinitions>

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

    <TextBlock Grid.Row="0" Grid.Column="0">Upper</TextBlock>
    <TextBlock Grid.Row="0" Grid.Column="1">Upper</TextBlock>

    <StackPanel Grid.Row="1" Grid.Column="0" Background="#1CFFFFFF">
        <TextBlock>Lower</TextBlock>
    </StackPanel>

    <StackPanel Grid.Row="1" Grid.Column="1" Background="#1CFFFFFF">
        <TextBlock>Lower</TextBlock>
    </StackPanel>
</Grid>

问题是上面的行只需要amonut来显示TextBlocks,而下面一行的StackPanel会拉伸以填充网格的高度。这是自定义控件的一部分,因此网格的高度设置为{TemplateBinding Height}

我确实需要将下排的内容作为StackPanels。

从我身边试图没有工作:

  1. 将下方StackPanel的高度设置为52。
  2. 为StackPanel的Orientation参数尝试不同的值[虽然不知道我为什么这样做]。
  3. MaxHeightMinHeight设置为第二个RowDefinition上的52。
  4. 非常感谢任何帮助。

0 个答案:

没有答案