0

我有:

<Grid>
 <Grid.RowDefinitions>
   <RowDefinition></RowDefinition>
 </Grid.RowDefinitions>

 <sdk:DataGrid Grid.Row="0" ...>
 ...
 </sdk:DataGrid>

</Grid>

请注意,没有Height="Auto"行内定义,因此数据网格占据所有高度。我正在尝试制作完整数据网格的图片(包括需要滚动的不可见空间)。我试过了:

ImageExtensions.ToImage(myDataGrid);

var writeableBitmap = new WriteableBitmap(pixelWidth, pixelHeight);

其中 pixelHeight 是使用 SizeChanged 事件或 DesiredSize 属性获得的。

一切都是徒劳。高度始终是屏幕的高度。如果我在行定义中使用 auto="height" 那么它会起作用,但是当它太大时,datagrid 不会占用所有空间/或没有滚动条。

有人设法让它工作吗?

4

1 回答 1

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();
}
于 2012-12-07T10:48:36.163 回答