C#写的winform界面缩放问题

a_den 2011-09-22 11:37:02
用c#写了一个winform程序。开发的系统环境是win7,屏幕分辨率1920*1080,字体太小,将字体设置成了中等大小显示;
在这种环境下写的程序,主界面尺寸800*600;最大最小尺寸都设置成了800*600,autosize=false,背景图片上有镂空,于是就将背景设置成了透明的;
当我把程序放到其他计算机上运行的时候,尺寸变了,界面上的所有控件全部都变了位置。主界面也变小了,背景图片还被截掉了一部分没有显示出来。

仔细观察后,这个变化是相对的,界面变成了600*400,字体大小也变了,但是相对布局的位置还是存在的,相当于是按比例缩小了。因为背景图片是相对固定不变的。我希望不管在任何系统环境下,都显示固定的800*600.不要缩放。怎么弄

还有透明的背景在win7上是透明的,在XP上就不是了,咋整?

万分感谢!
...全文
608 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
danceboy_520 2011-09-23
  • 打赏
  • 举报
回复
这个。。。
1. 你得把宽度和高度都设置成绝对值,就不会自动缩放了
2. 在XP上你也得判断一下,然后针对XP加上针对性的透明函数
a_den 2011-09-23
  • 打赏
  • 举报
回复
FormBorderStyle = FixedSingle 这样设置有什么做用啊。
我其他的没变,改了一个,autoScaleMode 属性设置为 inherit;就可以了,,目前测试的,在各种环境都没有变过。

但就是有一天,,背景图片上有镂空,镂空的地方要透明,我吧mainform的背景设置为control,在win7下就是透明的,但是在XP下不透明,怎办解决呢?
叫我三三 2011-09-23
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 bunliney 的回复:]
你设置了窗体的FormBorderStyle = FixedSingle了吗?
[/Quote]
+1
另外可以不要边框 设为none,自己做边框
如果边框样式为默认的情况的,会根据主题的不同,界面有变形
所有界面上的那些控件颜色字体不要用默认的那种,那些会跟着主题改变而改变,
除非你觉得自己能够很好控制界面,不然就自己写成绝对值
Bullatus 2011-09-23
  • 打赏
  • 举报
回复
你设置了窗体的FormBorderStyle = FixedSingle了吗?
ningweidong 2011-09-23
  • 打赏
  • 举报
回复
你在哪个环境上用,就在哪个环境上试用
sherry_xw 2011-09-23
  • 打赏
  • 举报
回复
同意楼上
sjfbtnmcn 2011-09-23
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 a_den 的回复:]
FormBorderStyle = FixedSingle 这样设置有什么做用啊。
我其他的没变,改了一个,autoScaleMode 属性设置为 inherit;就可以了,,目前测试的,在各种环境都没有变过。

但就是有一天,,背景图片上有镂空,镂空的地方要透明,我吧mainform的背景设置为control,在win7下就是透明的,但是在XP下不透明,怎办解决呢?
[/Quote]
1.固定大小,设置 Form 的 Height,Width, 并且 WindowState=Maxmized.
2.要透明镂空,不是这么简单,自己用 Api 做吧.
NeilPan 2011-09-23
  • 打赏
  • 举报
回复
同意一楼

110,538

社区成员

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

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

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