【发布时间】:2021-01-11 12:31:09
【问题描述】:
如何使用 .NET Core 确定屏幕大小?我想按照DotNetCore Capture A Screenshot in Windows 中的说明截取屏幕截图,但他们使用固定的 1920*1080 分辨率,这不适合我的目的。
我是否必须引用 System.Windows.Forms 从而被确定为 Windows?
在切换到 .NET Core 之前,我们像这样使用 System.Windows.Forms:
new Size
{
Width = Screen.AllScreens.Sum(s => s.Bounds.Width),
Height = Screen.AllScreens.Max(s => s.Bounds.Height)
}
这是我们可以再次使用的东西,但我们当然会喜欢独立于平台的东西。
【问题讨论】:
-
虽然 System.Drawing 可以跨平台使用,但如果 CopyFromScreen 不能在 linux 上运行,我不会感到惊讶。我会先对其进行测试,以确保您不会再次尝试需要 System.Windows.Forms 的东西。
-
这是一个开放的issue。目前不支持
Screeninfo,因为有问题的平台可能甚至没有屏幕。 -
你问的绝对是不是平台无关的。 Web 应用程序没有屏幕。 Mac 窗口概念和 API 与 Windows 非常不同。 Linux、Android、iOS 也是如此。有一些尝试创建跨平台 GUI 堆栈,例如 Xamarin Forms 或 Uno Platform