使用 .NET Core 5 确定屏幕尺寸?

D.R*_*.R. 5 .net c# .net-core .net-5

如何使用.NET Core确定屏幕尺寸?我想按照DotNetCore 在 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)
}
Run Code Online (Sandbox Code Playgroud)

这是我们可以再次使用的东西,但我们当然喜欢独立于平台的东西。

D.R*_*.R. 6

评论暗示尚不支持。

因此,我向您展示我们如何使用 Windows 窗体来实现它(我花了一些时间来了解如何在 .NET Core 库项目中正确引用 Windows 窗体):

您可以将 Windows 窗体依赖项添加到 csproj 文件中:

<ItemGroup>
  <FrameworkReference Include="Microsoft.WindowsDesktop.App.WindowsForms" />
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)

然后你可以Screen再次使用该类:

new Size
{
  Width = Screen.AllScreens.Sum(s => s.Bounds.Width),
  Height = Screen.AllScreens.Max(s => s.Bounds.Height)
}
Run Code Online (Sandbox Code Playgroud)

重要提示:这仅适用于 Windows,但至少它与 .NET Core 兼容。