C# winform 适应屏幕分辨率切换问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# winform 适应屏幕分辨率切换问题相关的知识,希望对你有一定的参考价值。

情况:
1.程序固定800X600,全屏时将屏幕分辨率改成800X600.
2.还原,退出时将分辨率改回去.
问题:
1.程序全屏时,切换程序,怎么做到分辨率自动切换?(焦点事件?)
2.程序全屏时,程序未响应或强制关闭等非正常关闭,怎么保证分辨率正常切换回去?(做第二个程序专门监视?)

希望找到C#有简便的方法解决此类问题
啊,是这样...觉得这个程序可能被投影在墙上...这个时候要清晰的话,全部东西都必须等比例放大...
我现在采用计算的方式重新布局控件,觉得很麻烦(字体,GDI绘制的图片等等都无法自动dock)

改分辨率一步到位,但是不熟悉就来问问

你这是要改屏幕分辨率适应程序,而不是改程序以适应分辨率啊。对于系统设置的改动,恐怕你得参考win32 API了:
http://msdn.microsoft.com/zh-cn/library/aa383686(en-us,VS.85).aspx

ps:你这想法算是有点另类,改一次分辨率对系统的开销不小,切进切出都要改一次,用户体验估计好不了。其实据我所知,大部分投影也就支持1024x768,你就按这个分辨率设计UI我想可行啊,问题瞬间容易得多
参考技术A 思路:
以我的想法是,根本不需要设定分辨率的,
你是知道 控件的 dock 属性 及 panle 的控件的应用

主要是 根据 panle 进行布局 可以根据他们各自的 dock
例如:
把界面分割成上左右 结构
先放一个 panle 的 dock 设定为 top 这个是估计的高度 再 最大化时也是这么大的
再放一个panle 的 dock设定为 left 这个是估计的高度 再 最大化时也是这么大的
再放一个 panle 的 dock 设定为 center 这个是跟随窗体的大小进行变大变小的

不知道是否是你想要的效果追问

有些没法跟着dock放大缩小,比如字体呀....
还要计算分辨率然后确定选用哪一种字体....
有些图片是GDI绘制的,又要计算...
最重要的是,用dock做会大量增加控件数量,我很多控件都是后台动态加入的,这样很麻烦

参考技术B 你为什么要这样做,不允许窗口最大化,然后窗体固定800*600大小就行了追问

所谓 用户体验...

金馆长の脸

c# winform背景图片超过屏幕分辨率怎么办

参考技术A 如何在分辨率为1680*1050的屏幕上开发超过些分辨率的winfrom应用程序比如我现在有一张1920*1080的图片,让它去做from的背景,遇到的问题是,1)VS开发环境中,form的size属性值最大只能手动设置为当前屏幕的分辨率2)运行起来后,超过屏幕分辨率真的图像显示不出来解决方法1)设置AutoScrollMinSize属性,把它设置为你背景图片的分辨率,这样运行起来后,点击向下还原会出现滚动条,拖动滚动条,剩下的图像就可以显示出来了2)在VS开发环境中,还是看不到剩下的图像,这样你就没法在上面做东西了,这时要设置一下AutoScroll属性为true,你的开发环境中就会出现双层的滚动条,剩下的图像也会显示出来 另外,若设置label为热区后,防止窗口大小变化时,热区会移动,可以不让背景自动拉伸或自适应,然后把label的lock属性设置为true本回答被提问者采纳

以上是关于C# winform 适应屏幕分辨率切换问题的主要内容,如果未能解决你的问题,请参考以下文章

C# WinForm 技巧十: winfrom 全屏自适应屏幕分辨率

c#winform太大安装到小屏幕电脑显示不全,怎么实现自动适应并显示所��

WinForm界面怎么适应电脑的屏幕大小

winform如何实现根据屏幕分辨率来适应让程序界面总是全屏呢

winform 自适应屏幕分辨率具体操作和注意事项

c# winform背景图片超过屏幕分辨率怎么办