WPF:截取屏幕截图并保存[重复]

2024-04-02

我是 WPF 应用程序的新手,我尝试四处寻找是否可以找到适用于此的东西,但到目前为止我还没有找到任何有用的东西(我想这是因为其中大部分都已经过时了)。我想截取整个桌面(即所有显示器)的屏幕截图并将其另存为.jpg当我单击屏幕截图按钮时,到特定文件夹,以时间和日期作为文件名。我能够在我的 Windows 窗体应用程序中实现此目的,但无法在我的 WPF 应用程序中实现此目的。

这是我用于 Windows 窗体应用程序的代码。

int screenLeft = SystemInformation.VirtualScreen.Left;
int screenTop = SystemInformation.VirtualScreen.Top;
int screenWidth = SystemInformation.VirtualScreen.Width;
int screenHeight = SystemInformation.VirtualScreen.Height;

using (Bitmap bmp = new Bitmap(screenWidth, screenHeight))
{
    using (Graphics g = Graphics.FromImage(bmp))
    {
        String filename = "ScreenCapture-" + DateTime.Now.ToString("ddMMyyyy-hhmmss") + ".png";
        Opacity = .0;
        g.CopyFromScreen(screenLeft, screenTop, 0, 0, bmp.Size);
        bmp.Save("C:\\ScreenShots\\" + filename);
        Opacity = 1;
    }
}

任何帮助,将不胜感激。


在WPF项目中,您必须手动添加对System.Drawing.dll图书馆。为此,“项目”>“添加引用”>“组件”选项卡(框架)> 检查所需的库。

此外,您的代码只需要一些调整,但它的想法是正确的。

        double screenLeft = SystemParameters.VirtualScreenLeft;
        double screenTop = SystemParameters.VirtualScreenTop;
        double screenWidth = SystemParameters.VirtualScreenWidth;
        double screenHeight = SystemParameters.VirtualScreenHeight;

        using (Bitmap bmp = new Bitmap((int)screenWidth,
            (int)screenHeight))
        {
            using (Graphics g = Graphics.FromImage(bmp))
            {
                String filename = "ScreenCapture-" + DateTime.Now.ToString("ddMMyyyy-hhmmss") + ".png";
                Opacity = .0;
                g.CopyFromScreen((int)screenLeft, (int)screenTop, 0, 0, bmp.Size);
                bmp.Save("C:\\Screenshots\\" + filename);
                Opacity = 1;
            }

        }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WPF:截取屏幕截图并保存[重复] 的相关文章

随机推荐