winforms Screen.Bounds未返回正确值[已关闭]

bvk5enib  于 2022-11-16  发布在  其他
关注(0)|答案(1)|浏览(129)

**已关闭。**此问题不符合Stack Overflow guidelines。当前不接受答案。

这个问题似乎与help center中定义的范围内的编程无关。
11天前关闭。
Improve this question
在我winform应用程序中,我想得到系统的分辨率和使用Scren.bounds为这个。代码是运行相当不错几个星期前,它是得到正确的值,但不知何故过去几天它没有返回正确的值,总是返回560 X 300,而我的分辨率设置为1366 X 768与100%缩放!正如你可以看到在调试值显示的宽度和高度分别为556和300的附加图像,如果在IEnumerbale Visualizer中看到这些调试值,那么它显示正确的值(1366 X 768)。任何人都可以指出这个问题,或者我错过了什么!
.net目标框架是4.6.2,而我使用的窗口11。

IEnumerableVisulaizer Image
我已经尝试了每一个可能的解决方案,使应用程序dpi意识到,设置比例为100%等,但没有为我工作到目前为止!谢谢!

plupiseo

plupiseo1#

Size属性是正确的,因为它以十六进制值显示分辨率,请尝试将这些值转换为整数:

var width = Convert.ToInt32(Screen.AllScreens[0].Bounds.Size.Width.ToString(), 16);

var height = Convert.ToInt32(Screen.AllScreens[0].Bounds.Size.Height.ToString(), 16);

相关问题