Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF 4.0数据网格高度问题_C#_Wpf_Datagrid - Fatal编程技术网

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,但在填充数据方面出现了一些问题,因此最终使用winforms

max height会在拉伸窗口时使布局看起来很糟糕。它会造成间隙,这就是为什么我没有使用该解决方案,但我知道设置高度或最大高度可以解决问题。