グリッド (wpf) があり、グリッドを画像として保存したいと考えています。グリッド名は gridPrintPanel (WxH: 1800x1200) です。RenderTargetBitmap を使用してデータを取得し、ファイルとして保存しようとしました。
string tempFile = @"D:\temp.png";
RenderTargetBitmap renderTargetBitmap = new RenderTargetBitmap(1800, 1200, 0, 0, PixelFormats.Pbgra32);
renderTargetBitmap.Render(ViewInstance.gridPrintPanel);
PngBitmapEncoder pngImage = new PngBitmapEncoder();
pngImage.Frames.Add(BitmapFrame.Create(renderTargetBitmap));
using (Stream fileStream = File.Create(tempFile))
{
pngImage.Save(fileStream);
}
問題は、画面解像度が異なる2つの異なるマシンでプログラムを実行すると、結果の画像が異なることです。フル HD 画面のマシンでは期待どおりの結果が得られますが、画面解像度 1024x768 の別のマシンではデータの少ない画像が得られます。私のグリッドにはデータグリッドが含まれており、2 番目のマシンは最後の行を失ったデータグリッドを提供します。ここで質問したいのは、画面の解像度が結果に影響を与える可能性はありますか? そして、同じ結果、つまり両方のマシンで完全なイメージを得るにはどうすればよいでしょうか。