基于内容的网格行高比

时间:2014-12-05 23:16:59

标签: wpf

我有一个有两行的网格。每行都有一个ListView。 第一行有100个项目,第二行有500个项目。 这不适合屏幕,所以我想在每个ListView上显示滚动条(没问题),行高应该是ListViews的高度比。比如1 *和5 *,但我事先并不知道这些ListBox会有多大。

注意:每个项目可能有不同的大小,所以我想使用实际的ListBox高度而不是项目计数

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition /> <!-- keep ratio of rows based on Listbox Heights -->
        <RowDefinition />
    </Grid.RowDefinitions>
    <ListBox Grid.Row="0">
        <!-- 100 items -->
    </ListBox>
    <ListBox Grid.Row="1">
        <!-- 500 items -->
    </ListBox>
</Grid>

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

 <Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="{Binding Height,ElementName=ListBox1}"/>
        <!-- keep ratio of rows based on Listbox Heights -->
        <RowDefinition Height="{Binding Height,ElementName=ListBox2}"/>
    </Grid.RowDefinitions>
    <ListBox Grid.Row="0" x:Name="ListBox1">
        <!-- 100 items -->
    </ListBox>
    <ListBox Grid.Row="1" x:Name="ListBox2">
        <!-- 500 items -->
    </ListBox>
</Grid>

如果你有更复杂的场景,你可以使用转换器。