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" を使用すると機能しますが、データグリッドが大きすぎる場合、すべてのスペースを使用しないか、スクローラーを使用しません。

誰もそれを機能させることができましたか?

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 に答える