【发布时间】:2013-10-01 08:27:00
【问题描述】:
我有 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 条记录的顺序显示在里面的数据,高度就会被拉伸到窗口大小之外。
我尝试了垂直对齐和垂直内容对齐,将垂直滚动设置为可见、自动,还尝试放入堆栈面板、停靠面板、画布、scrollviewer ...
我想不通。我所知道的是,如果我设置了数据网格的高度或最大高度,那么它就可以工作。如果未设置,有没有办法防止数据网格项目拉伸数据网格高度?
编辑#1:
好的,我已经尝试使用 WPF 进行其他操作,只是为了查看结果,但它也无法正常工作。这里有一些细节:
我制作了 3 行第一行高或 100 第二行高的 1 个网格 自动第三行高度为 100
我在中间行放了一个数据网格,它工作得很好。现在作为 我在其中添加数据后立即关闭屏幕。
在数据网格中没有数据我拉伸窗口,它是完美的 顶行也保持在 100 的底部,中间只是自行调整。
现在这里是我在 Winforms 中尝试过的内容
左右放置一个数据网格锚定的顶部底部。最高值 = 100 和 底部值 = form.height - 100
现在拉伸它完美工作的形式。我添加了相同的 xml 数据和 格式保留
所以我要做的不仅仅是一些“神奇的独角兽想法”,显然它实际上很容易在 winforms 中实现,但我不想使用我想留在 WPF 中的 winforms。那么如何复制呢?
我刚刚测试了 ASP.Net 数据网格,它的行为就像 winform 测试,所以绝对是可能的。
【问题讨论】: