0
RenderTargetBitmapクラスでメインウィンドウwpfアプリケーションをpngイメージにキャプチャしようとしました。画像の下部と左側に小さな透明な領域があることを除いて、正常に機能します。RenderTargetBitmapがwpfコントロールをキャプチャした、予期しない透明な領域があります
private void ButtonBase_OnClick(object sender, RoutedEventArgs e)
{
string folder = "screenshot";
if (!Directory.Exists(folder))
{
Directory.CreateDirectory(folder);
}
string filename = "ScreenCapture_" + DateTime.Now.ToString("ddMM_hhmmss") + ".png";
string filePath = folder + "//" + filename;
RenderTargetBitmap renderTargetBitmap =
new RenderTargetBitmap((int)this.ActualWidth, (int)this.ActualHeight, 96, 96, PixelFormats.Pbgra32);
renderTargetBitmap.Render(this);
PngBitmapEncoder pngImage = new PngBitmapEncoder();
pngImage.Frames.Add(BitmapFrame.Create(renderTargetBitmap));
using (Stream fileStream = File.Create(filePath))
{
pngImage.Save(fileStream);
}
}
Captured image has transparent part at bottom
感謝@Clemensが、それがうまく機能:代わりに、ウィンドウの
、あなたはそのトップレベルの子要素、すなわちその
Content
をレンダリングする必要があります – Jacky