C#/WPF アプリケーションには、画像に保存する必要がある DataChart オブジェクトがあります。現在、オブジェクトは固定ドキュメントに追加され、次のコードを使用してその固定ドキュメントに正しく表示されます。
VisualBrush chartBrush = new VisualBrush(chart);
Rectangle chartRect = new Rectangle();
chartRect.Height = chartClone.Height;
chartRect.Width = chartClone.Width;
chartRect.Fill = chartBrush;
AddBlockUIElement(chartRect, textAlignment);
ただし、固定ドキュメントにブロックとして追加するのではなく、画像をディスクに保存するだけで済みます。私は次のことを試しました:
RenderTargetBitmap bmp = new RenderTargetBitmap((int)chart.Width, (int)chart.Height, 96, 96, PixelFormats.Default);
bmp.Render(chart);
PngBitmapEncoder image = new PngBitmapEncoder();
image.Frames.Add(BitmapFrame.Create(bmp));
using (Stream fs = File.Create("TestImage.png"))
{
image.Save(fs);
fs.Close();
}
ただし、これにより、グラフのサイズで黒一色の画像が表示されるだけで、その理由がわかりません。
私の質問は、DataChart オブジェクトを保存できる PNG または BMP 画像に変換するより良い方法を知っている人はいますか? VisualBrush または Rectangle からイメージへの取得を検索しようとしましたが、上記以外に、必要なことをしているように見えるものは見つかりませんでした。
本当にありがとう!