gpt4 book ai didi

c# - 生成 WPF 窗口的屏幕截图

转载 作者:太空宇宙 更新时间:2023-11-03 16:46:55 25 4
gpt4 key购买 nike

在winforms中,我们可以使用DrawToBitmap。 WPF中有类似的方法吗?

最佳答案

您是否尝试过RenderTargetBitmaphttps://msdn.microsoft.com/en-us/library/system.windows.media.imaging.rendertargetbitmap.aspx

有一些使用它的“屏幕截图”方法,比如这个 from here :

    public static void CreateBitmapFromVisual(Visual target, string fileName)
{
if (target == null || string.IsNullOrEmpty(fileName))
{
return;
}

Rect bounds = VisualTreeHelper.GetDescendantBounds(target);

RenderTargetBitmap renderTarget = new RenderTargetBitmap((Int32)bounds.Width, (Int32)bounds.Height, 96, 96, PixelFormats.Pbgra32);

DrawingVisual visual = new DrawingVisual();

using (DrawingContext context = visual.RenderOpen())
{
VisualBrush visualBrush = new VisualBrush(target);
context.DrawRectangle(visualBrush, null, new Rect(new Point(), bounds.Size));
}

renderTarget.Render(visual);
PngBitmapEncoder bitmapEncoder = new PngBitmapEncoder();
bitmapEncoder.Frames.Add(BitmapFrame.Create(renderTarget));
using (Stream stm = File.Create(fileName))
{
bitmapEncoder.Save(stm);
}
}

关于c# - 生成 WPF 窗口的屏幕截图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5616906/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com