捕获表单和表单上元素的屏幕截图

本文关键字:表单 屏幕截图 元素 | 更新日期: 2023-09-27 18:00:29

我正在尝试捕获主窗口和主窗口内容的屏幕截图。主窗口有时会在其他元素后面,需要在没有其他覆盖元素的情况下进行屏幕捕捉。此代码当前返回一个没有任何内容的空白MainWindow窗体的位图。表单有一堆不同的动态UI元素。如何获取MainWindow及其内容的当前屏幕截图/捕获?MainWindow内容的代码发布时间很长,所以我希望这已经足够了。

Rectangle bounds = new Rectangle();
bounds.Width = Program.MainWindow.Width;
bounds.Height = Program.MainWindow.Height;
screenShot = new Bitmap(Program.MainWindow.Width,
                       Program.MainWindow.Height,
                       PixelFormat.Format32bppRgb);
Program.MainWindow.DrawToBitmap(screenShot, bounds);

捕获表单和表单上元素的屏幕截图

您应该能够通过使用Graphics类的CopyFromScreen方法来获得它

        Rectangle bounds = Program.MainWindow.Bounds;
        Bitmap b = new Bitmap(bounds.Width, bounds.Height, PixelFormat.Format32bppArgb);
        using (Graphics g = Graphics.FromImage(b))
        {
            g.CopyFromScreen(bounds.X, bounds.Y, 0, 0, bounds.Size, CopyPixelOperation.SourceCopy);
        }
        b.Save("YOUR FILE NAME HERE");