WPF 4.0 Datagrid高度问题

时间:2013-09-25 16:15:36

标签: c# wpf datagrid

我有2个数据网格,我有问题。一旦数据填入其中,高度就会完全变为坚果。

我得到以下样本格式:

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

    <!-- some control on row 0 -->

    <Grid Grid.Row="1" HorizontalAlignment="Stretch"  Margin="0,2,0,0">
        <Grid.RowDefinitions>
            <RowDefinition Height="0.66*"/>
            <RowDefinition Height="0.33*" />
        </Grid.RowDefinitions>

        <DataGrid Name="grdSeacrhData" Grid.Row="0" />

        <DataGrid Name="grdSelectData" Grid.Row="1" />
    </Grid>
</Grid>

所以主网格行的大小是因为第一行有一堆未知高度的控件,是最重要的部分。

第二行目标是首先显示2个数据网格,稍微大一点,以显示上面的结果,第二个数据网格显示为第一个中的一个或多个选择的精炼结果。

如果我没有触及任何东西并打开表格,它就能很好地工作。但是,只要第一个数据网格“grdSeacrhData”以200-300条记录的顺序显示内部数据,就会将高度拉伸到窗口大小之外。

我尝试了垂直对齐和垂直内容对齐,将垂直滚动设置为可见,自动并尝试放入堆叠面板,停靠面板,画布,滚动查看器......

我不在乎。我所知道的是,如果我设置数据网格的高度或最大高度,那么它的工作原理。有没有办法防止数据网格项目如果没有设置拉伸数据网格高度?

编辑#1:

好的,我已经尝试了WPF的其他内容,只是为了查看结果,但它也无法正常工作。这里有一些细节:

  

我做了1个网格,第3行第一行高度或第二行高度为100秒   自动第三行高度为100

     

我将数据网格放在中间行,它完美无缺。现在   一旦我在其中添加数据就会离开屏幕。

     

没有数据网格中的数据我拉伸窗口,它是完美的   顶行也保持在底部100,中间只是调整自己。

现在我在Winforms中试过了

  

左右放置数据网格锚定顶部按钮。最高值= 100和   底值= form.height - 100

     

现在拉伸它完美的形式。我添加了相同的xml数据和   格式化

所以我要做的不仅仅是一些“神奇的独角兽的想法”,它实际上很容易在winforms中显而易见,但我不想使用winforms我想留在WPF。然后怎么能复制那个?

对于我刚刚测试过的ASP.Net数据网格,它表现得像winform测试,所以最终它是可能的。

2 个答案:

答案 0 :(得分:0)

您可以使用MaxHeight。它将设置元素可以具有的最大高度。

<DataGrid Name="grdSelectData" Grid.Row="1" MaxHeight="400" />

因此,如果您的数据较少,则会更小。在您添加更多数据时,它会调整大小,直到达到MaxHeight

答案 1 :(得分:0)

使用winform用户控件替换所有内容,因为它具有更好的布局设置。曾尝试使用浏览器对象和HTML,但是填充数据时出现了一些问题,所以最终选择了winforms