的UserControl
我试图用基本上奠定了像这样的工作:然后WPF网格和DataGrid大小
<Grid>
<Grid.RowDefinitions>
<Row Height="*"/>
<Row Height="*"/>
</Grid.RowDefinitions>
<wpftoolkit:DataGrid x:Name="PrimaryGrid"/> <!-- ~10 rows -->
<Border>
<Grid>
<Grid.RowDefinitions>
<Row Height="*"/>
<Row Height="*"/>
</Grid.RowDefinitions>
<wpftoolkit:DataGrid x:Name="SecondaryGrid"/> <!-- ~2 rows -->
<wpftoolkit:DataGrid x:Name="OtherGrid"/> <!-- ~50 rows -->
</Grid>
</Border>
</Grid>
这UserControl
放在我的Window
为Grid
的最后一个成员,是唯一一个与Height="*"
。我在DataGrid
的尺寸方面遇到问题。
如果我在Window
设置UserControl
到Stretch
的VerticalAlignment
,然后PrimaryGrid
得到1/2高度UserControl
的,每一两个Border
内得到1/4。无论每个行的行数是多少,它们的大小都是这样,使OtherGrid
的垂直空间太少,而其他行在滚动视图内的非行空白。
如果我将VerticalAlignment
设置为Top
,网格看上去与其内容大小相当一致,除了UserControl
底部留有无法解释的空白。我用探听和RowDefinition
为UserControl
具有适当ActualHeight
,但UserControl
仅使用其一部分 - 80%左右。
我不介意我是否修复Stretch
情况下(我如何让DataGrid
不拉伸比它的行数?大)或Top
情况下(我如何让UserControl
使用它拥有的所有空间?提供给它)
我会给它一个镜头,但上次我尝试Auto时,OtherGrid展开窗口的底部,没有滚动条。 – Thomas 2010-01-21 22:39:50
是的,所有的汽车绝对不好。 使两个网格自动,*有点作品,直到我缩小窗口。然后PrimaryGrid不缩小,边界逐渐消失。也许我可以给他们一个与ActualHeight比例相关的maxheight。但那似乎是如此没有必要。 我想我想将DataGrid的MaxHeight绑定到它的ScrollableHeight,但这似乎不起作用。 – Thomas 2010-01-21 22:51:46
作为一种替代方法:如何使用Auto并将整个UserControl放入ScrollViewer中?这样,每个DataGrid应该可以获得所需的空间,并且可以使用(全局)滚动条来滚动。 – Heinzi 2010-01-21 23:41:54