我有:
<Grid>
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<sdk:DataGrid Grid.Row="0" ...>
...
</sdk:DataGrid>
</Grid>
请注意,行定义中没有Height="Auto"
,因此datagrid占用所有高度。
我正在尝试制作完整数据网格的图片(包括需要滚动的不可见空间)。我试过了:
ImageExtensions.ToImage(myDataGrid);
也
var writeableBitmap = new WriteableBitmap(pixelWidth, pixelHeight);
其中pixelHeight是使用SizeChanged事件或DesiredSize属性获得的。
一切都是徒劳的。高度始终是屏幕的高度。如果我在行定义中使用auto =“height”那么它会起作用,但是当datagrid太大时,datagrid不会占用所有空格/或没有滚动条。
有人设法让它发挥作用吗?
答案 0 :(得分:0)
解决方法:
GridLength h = grid.RowDefinitions[0].Height;
grid.RowDefinitions[0].Height = GridLength.Auto;
grid.UpdateLayout();
try
{
var writeableBitmap = new WriteableBitmap((int)myDataGrid.ActualWidth, (int)myDataGrid.ActualHeight);
}
finally
{
grid.RowDefinitions[0].Height = h;
grid.UpdateLayout();
}