使用 .NET Core 5 确定屏幕尺寸?
Determine screen size with .NET Core 5?
.NET Core如何判断屏幕大小?我想按照 中的描述截屏,但他们使用固定的 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)
}
我们可以再次使用它,但我们当然会喜欢与平台无关的东西。
评论提示暂不支持
因此,我将向您展示我们为使用 Windows 表单实现它所做的工作(我花了一些时间来了解如何在 .NET Core 库项目中正确引用 Windows 表单):
您可以像这样将 Windows Forms 依赖项添加到 csproj 文件中:
<ItemGroup>
<FrameworkReference Include="Microsoft.WindowsDesktop.App.WindowsForms" />
</ItemGroup>
然后你可以再次使用 Screen
class:
new Size
{
Width = Screen.AllScreens.Sum(s => s.Bounds.Width),
Height = Screen.AllScreens.Max(s => s.Bounds.Height)
}
重要提示:这仅适用于 Windows,但至少它与 .NET Core 兼容。
对于 WPF 解决方案,我们只是使用了最大化 window 的方法,取值 window 的宽度和高度,然后在正常状态下 return window。也可以使用虚拟第二个透明 window(使用 WindowStartupLocation.CenterOwner)来完成。未测量的任务栏也考虑在内。
.NET Core如何判断屏幕大小?我想按照
我是否必须引用 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)
}
我们可以再次使用它,但我们当然会喜欢与平台无关的东西。
评论提示暂不支持
因此,我将向您展示我们为使用 Windows 表单实现它所做的工作(我花了一些时间来了解如何在 .NET Core 库项目中正确引用 Windows 表单):
您可以像这样将 Windows Forms 依赖项添加到 csproj 文件中:
<ItemGroup>
<FrameworkReference Include="Microsoft.WindowsDesktop.App.WindowsForms" />
</ItemGroup>
然后你可以再次使用 Screen
class:
new Size
{
Width = Screen.AllScreens.Sum(s => s.Bounds.Width),
Height = Screen.AllScreens.Max(s => s.Bounds.Height)
}
重要提示:这仅适用于 Windows,但至少它与 .NET Core 兼容。
对于 WPF 解决方案,我们只是使用了最大化 window 的方法,取值 window 的宽度和高度,然后在正常状态下 return window。也可以使用虚拟第二个透明 window(使用 WindowStartupLocation.CenterOwner)来完成。未测量的任务栏也考虑在内。