c# - 如何在 Windows 窗体应用程序中获取监视器的屏幕大小以捕获屏幕截图?

标签 c# .net winforms screenshot multiple-monitors

我正在研究一种解决方案,它可以抓取屏幕截图并定期以图像形式保存。此应用程序是在 Windows 窗体中构建的。

我使用下面的代码来获取屏幕分辨率 -:

int h = Screen.PrimaryScreen.WorkingArea.Height;
int w = Screen.PrimaryScreen.WorkingArea.Width;

这在分辨率为 1366 * 768 的笔记本电脑上运行良好。

但是当在非常大的显示器上执行相同的应用程序时,图像会从右侧和底部被裁剪掉。

有没有办法在代码中处理监视器大小。

最佳答案

假设您要捕获包含表单的屏幕,请使用 Screen.FromControl method ,将表单实例传递给它,然后使用该屏幕的 WorkingArea。

如果这个假设是错误的,请在您的问题中添加更多细节。

关于c# - 如何在 Windows 窗体应用程序中获取监视器的屏幕大小以捕获屏幕截图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41754304/

相关文章:

winforms - 限界上下文之间的通信

c# - 在 C# 中减慢动画速度

c# - Windows Azure 找不到 C++/CLI 项目的 DLL

c# - 什么是 C# 中的处置对象?

c# - 当位掩码(标志)枚举变得太大时该怎么办

.net - 压缩为 GZip WCF 请求(SOAP 和 REST)

c# - 当我的应用程序不会迁移时,我应该关心文化吗?

C# 根据日期列表计算日期范围

c# - .NET Entity Framework - 使用 .Contains() 在 Where 表达式中查找字节值

c# - 使用 byte[] 键和逐出策略构建 C# 缓存