WPF 4.0 数据网格高度问题

本文关键字:网格 高度 问题 数据网 数据 WPF | 更新日期: 2023-09-27 18:32:50

我有 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 和 底部值 = 表单.高度 - 100

现在,它完美地工作了。 我添加了相同的 XML 数据和 格式保留

所以我要做的不仅仅是一些"神奇的独角兽想法",实际上在 winforms 中显然很容易实现,但我不想使用 winforms,我想留在 WPF。 那么如何复制呢?

对于踢,我刚刚测试了 ASP.Net 数据网格,它的行为类似于 winform 测试,因此绝对是可能的。

WPF 4.0 数据网格高度问题

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

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

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

.

将所有

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