c# winform程序设计时和运行时窗体尺寸不同

mingcsharp 2020-06-17 11:12:38
vs 2017新建一个winform程序,窗体的宽和高分别是818, 497
然后直接生成运行,发现窗体宽高变成 802 482,
我的电脑分辨率是 1366 768
我感觉和分辨无关
你们试试看
与电脑的缩放与布局那里不知道有没有关系,大家一起来看看吧,我查了网上很多朋友提到这个问题(很多都是csdn的,见鬼我试了都不对,能不能做一个负责的代码人,到处copy,全他妈妈的错的)
...全文
1927 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
“窗体的宽和高”这个可能是指窗体最外边的尺寸吧?!实际上窗体风格、各类元素的大小(包括标题栏、状态栏、按钮、各类信息字体等等)都是根据每一个 windows 实例的用户设置而变化的。所以设计界面程序时不可能苛求这些像素大小不变。例如(仅仅是举例)可能 windows7 sp1 的家庭版的标题栏就比 windows7 sp2 的标题栏高很多,字大很多,而后者可能就多出了阴影和玻璃效果所占用的区域。所以设计界面时其实要动态考虑将来控件的偏移问题。
mingcsharp 2020-06-17
  • 打赏
  • 举报
回复
试过了,估计你没试
  • 打赏
  • 举报
回复
下面方法试过了吗? 把窗体的AutoScaleMode改为None
mingcsharp 2020-06-17
  • 打赏
  • 举报
回复
引用 2 楼 兔子家族-二哥 的回复:
大佬,你怎么知道你的宽高变了的呢? 你是用程序又打印了一次?
窗体的宽和高分别是818, 497 然后直接生成运行,发现窗体宽高变成 802 482, 一个是设计时,一个是运行时,我表达的还不清楚吗?
  • 打赏
  • 举报
回复
大佬,你怎么知道你的宽高变了的呢? 你是用程序又打印了一次?
mingcsharp 2020-06-17
  • 打赏
  • 举报
回复
也有 1920*1080的,试的时候是1366*768,来回折腾,累。。。
mingcsharp 2020-06-17
  • 打赏
  • 举报
回复
https://docs.microsoft.com/zh-cn/windows/win32/hidpi/high-dpi-desktop-application-development-on-windows?redirectedfrom=MSDN https://docs.microsoft.com/en-us/windows/win32/hidpi/setting-the-default-dpi-awareness-for-a-process 分辩率的问题找到了, 上面是微软官方的文档, 大意是传统的gui界面都是按照96dpi做的,这些年随着科技进步,显示器的分辨越来越高,现在已经有300dpi的了,更别说4K的了,微软为了能够 让程序自适应分辨的变化,特意让程序在不同的分辨率的情况下让程序自动调整(其实这是操作系统的行为,)也就是会被拉伸或者缩小,以便更清楚的显示效果(看的清字),如果程序关掉这个功能,程序跑到别的分辨率下面不会自动调整的话,会出现看不清字的,重影的问题(我相信你应该见过这种情况),上面两个网址有详细的解释 比如我设计的是400*200,这是在(传统的gui界面都是按照96dpi做的),程序运行时,我现在电脑早不是96了,也就是说已经被拉伸了,spy依然后能看出我设计的是400*200,而QQ只是单纯的通过我现在显示的测量出来的所以不一样了 说白了,设计都是在96上面的,实际现在的电脑都不是96了 自己问题自己结
mingcsharp 2020-06-17
  • 打赏
  • 举报
回复
引用 11 楼 Bridge_go 的回复:
怎么设置和获取的 带边框时窗体的宽和高是设置不了为0的
你去重发贴我告诉你
Bridge_go 2020-06-17
  • 打赏
  • 举报
回复
怎么设置和获取的 带边框时窗体的宽和高是设置不了为0的
mingcsharp 2020-06-17
  • 打赏
  • 举报
回复
我那里设计的800和500 其实这个尺寸是包括标题栏和外边框的,这是vs的事(就是最外层那个浅蓝色的边框) 找到了这里,正在看 https://docs.microsoft.com/en-us/windows/win32/hidpi/setting-the-default-dpi-awareness-for-a-process https://docs.microsoft.com/zh-cn/windows/win32/hidpi/high-dpi-desktop-application-development-on-windows?redirectedfrom=MSDN
正怒月神 2020-06-17
  • 打赏
  • 举报
回复
我没太关心过这个问题。哈哈 是指多出这个区域吗?如果是的话,感觉是设计界面为了让你拖动而显示的。
mingcsharp 2020-06-17
  • 打赏
  • 举报
回复
你们想多了,
assky124 2020-06-17
  • 打赏
  • 举报
回复
设置成无边框看看,有些样式标题的高度啥的都不一样

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧