C# WPF 4.0数据网格高度问题
我有两个数据网格,我有问题。数据一填进去,高度就完全变大了 我得到了以下示例格式:C# WPF 4.0数据网格高度问题,c#,wpf,datagrid,C#,Wpf,Datagrid,我有两个数据网格,我有问题。数据一填进去,高度就完全变大了 我得到了以下示例格式: <Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch"> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="*" /> </Grid.Ro
<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个datagrid,第一个稍微大一点以显示上面的结果,第二个稍小一点以显示第一行中一个或多个选择的优化结果
如果我不碰任何东西,打开表格,它就会工作得很好。但是,一旦第一个数据网格“grdSeacrhData”以200-300条记录的顺序显示内部数据,高度就会超出窗口大小
我尝试了垂直对齐和垂直内容对齐,将垂直滚动设置为可见、自动,还尝试了放入堆栈面板、停靠面板、画布、滚动查看器
我不知道。我所知道的是,如果我设置了数据网格的高度或最大高度,那么它就会工作。如果未设置,是否有方法防止datagrid项拉伸datagrid高度
编辑#1:
好的,我尝试了WPF的其他功能,只是为了看到结果,但它也失败了。以下是一些细节:
我制作了一个网格,第一行高度为3行,第二行高度为100行
自动第三排高度为100
我在中间行放了一个DATAGRID,效果很好。现在作为
一旦我在其中添加数据,它就会离开屏幕
在datagrid中没有数据的情况下,我拉伸了窗口,它是完美的
顶行保持在100,底部也保持在100,中间行只需自行调整
下面是我在Winforms中尝试的内容
将datagrid锚定在左上角和右上角。最大值=100和
底部值=形状高度-100
现在,拉伸形状,它可以完美地工作。我添加了相同的xml数据和
格式保留
所以我要做的不仅仅是一些“神奇独角兽的想法”,它实际上在winforms中很容易实现,显然,但我不想使用winforms,我想继续使用WPF。那么,我们如何复制这种情况呢
我刚刚测试了ASP.Net datagrid,它的行为与winform测试非常相似,因此完全可以使用。它将设置该元素可能具有的最大高度
<DataGrid Name="grdSelectData" Grid.Row="1" MaxHeight="400" />
所以,如果你有更少的数据,它会更小。添加更多数据时,它将调整大小,直到达到MaxHeight
.用winform用户控件替换了所有内容,因为它具有更好的布局设置。曾经尝试过使用浏览器对象和HTML,但在填充数据方面出现了一些问题,因此最终使用winformsmax height会在拉伸窗口时使布局看起来很糟糕。它会造成间隙,这就是为什么我没有使用该解决方案,但我知道设置高度或最大高度可以解决问题。