winform如果根据分辨率或者窗口大小自动缩放控件比例?

shadan05 2012-06-21 05:18:03
我也看了以前的一些帖子,网上资料也查了,都不理想,不知道同志们是否有同样的需求,咋样解决的?

需求:

1.窗口需要在不同的分辨率里面显示。
2.窗口上N个控件能根据分辨率大小自动缩放。
3.字体的大小也需要修改。
以上俩个需求大家有什么好的解决方案?

还有一种情况,我窗口控件都不是autoSize的,因为要显示多语言,这种情况如果实现上俩种需求呢?


目前我窗口可以实现自动缩放,但是控件比较多,自己尝试了一些方法,感觉有点麻烦,求好的思路。

我现在感觉要做一个套好的UI还真他妈的是个技术活。
...全文
2154 22 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
格拉 2015-01-29
  • 打赏
  • 举报
回复
改WPF吧..
江南小鱼 2015-01-27
  • 打赏
  • 举报
回复
本拉灯 2015-01-27
  • 打赏
  • 举报
回复
搞WINFROM 就一定要会WPF? 纯扯蛋的事。 即用WINFROM就不会在乎那种所谓的视觉效果了。
fuyonggao 2015-01-27
  • 打赏
  • 举报
回复
基本的问题都搞不清楚 1280*1024,1440*900,1920*1080的纵横比例相等吗? 用wpf也不能解决问题啊
Newbie 2014-04-08
  • 打赏
  • 举报
回复
不知道你解决了没有,控件有个Dock的属性那个设置之后就是这种情况,我今天自己研究出来的,希望对你有用
老李家的小二 2012-11-14
  • 打赏
  • 举报
回复
楼主可以参考一下这个 http://www.cnblogs.com/slyzly/articles/1965965.html
bluk44444 2012-06-26
  • 打赏
  • 举报
回复
public void AutoScales(Form frm)
{
frm.Tag = frm.Width.ToString() + "," + frm.Height.ToString();
frm.SizeChanged += new EventHandler(frmScreen_SizeChanged);

}
private void frmScreen_SizeChanged(object sender, EventArgs e)
{
if (flage == 1)
{
flage++;
string[] tmp = ((Form)sender).Tag.ToString().Split(',');
float width = (float)((Form)sender).Width / (float)Convert.ToInt16(tmp[0]);
float heigth = (float)((Form)sender).Height / (float)Convert.ToInt16(tmp[1]);
((Form)sender).Tag = ((Form)sender).Width.ToString() + "," + ((Form)sender).Height;
foreach (Control control in ((Form)sender).Controls)
{
control.Scale(new SizeF(width, heigth));
}
}
}
assky124 2012-06-25
  • 打赏
  • 举报
回复
只显示?
直接GDI+绘制完了
graphics对象Transform.Scale
shadan05 2012-06-25
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]
设置控件的anchor属性
[/Quote]

主要之前他们做的窗口就没考虑这东西,那有放什么容器,所以我还的一个一个去改。悲剧啊...
mizuho_2006 2012-06-25
  • 打赏
  • 举报
回复
设置控件的anchor属性
shadan05 2012-06-25
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
如果我们招聘使用微软开发平台的winform开发人员,不用wpf的,其实就不应该招聘。省得把UI上的雕虫小技当作“技术活”啊。

其实公司都应该警醒!
[/Quote]


wpf是好东西,处理这方面比较好,你说这些我知道,但是你让我把以前的东西都抛弃自己重新开始写吗?谁不知道好的东西多啊,我问的问题你一个都没回答,你说些有用吗?还不如不说呢,
我们是小公司一个人基本上什么都要做,没您说的那么多时间去搞这些,自己能有时间拿vs画个界面都不错了。
还有UI是雕虫小技?您说什么是大技?写一些业务逻辑,好的框架?还是处理一些大的数据?可能在你眼里这都是雕虫小技,大神,能给思路也行,别说那么多没用的。
yuandonghuia 2012-06-25
  • 打赏
  • 举报
回复
自己写方法算每个控件在SizeChange以后的大小和位置吧,或者把窗体大小定死,换WPF最直接.
q312977 2012-06-25
  • 打赏
  • 举报
回复
没办法 你不弄容器 没办法 整齐的缩放,弄了容器 就可以根据分辨率缩放 Anchor dock就这几个
事理 2012-06-25
  • 打赏
  • 举报
回复
以前弄过
http://www.cnblogs.com/slyzly/articles/1965965.html
玲cc 2012-06-25
  • 打赏
  • 举报
回复
用Anchor属性吧,但是这个属性的意思是固定控件的某个边界与窗体边界的距离。这样可能会导致有一些控件的大小是固定的,不能跟着缩放。
  • 打赏
  • 举报
回复
这里说的是缩放!而不是对齐。
熙风 2012-06-22
  • 打赏
  • 举报
回复
窗体的 Anchor属性,上下左右都设置一下
  • 打赏
  • 举报
回复
如果我们招聘使用微软开发平台的winform开发人员,不用wpf的,其实就不应该招聘。省得把UI上的雕虫小技当作“技术活”啊。

其实公司都应该警醒!
  • 打赏
  • 举报
回复
如果你使用silverlight或者wpf,就不用神经兮兮地纠结这类问题了。因为对你编写好的界面,你只要设置一下其缩放率就行了。

想设计软件,先学会使用blend吧。只会用vs的程序员,(虽然vs当然也可以但是)极度缺乏设计师的水平都没有。

你使用blend来搞开发,不管是web的还是winform的,就不会问这类没意义的问题了。
SocketUp 2012-06-21
  • 打赏
  • 举报
回复
Dock
加载更多回复(2)

111,092

社区成员

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

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

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