C# 分辨率问题 我在高分辨率下做了个程序, 改了分辨率 程序就只显示一部分,很多地方不显示,怎么办?直接改WindowsState的属性设置为Maximized 无效..控件没有缩小.. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 需要调整控件的Anchor属性,随容易大小改变而改变。 private void ctlAppearance_position(int Width, int Height) { Form2 frm = new Form2(); foreach (Control control in (frm.Controls)) { float a = control.Width * Width / 1600; float b = control.Height *Height/900 ; control.Scale(new SizeF(control.Width / Width,control.Height / Height)); } } //载入初始化 private void Form2_Load(object sender, EventArgs e) { Rectangle rect = new Rectangle();//声明一个rect rect = Screen.PrimaryScreen.Bounds;//获取当前屏幕的分辨率 int width, height;//声明宽度,高度 width = int.Parse(rect.Width.ToString()); height = int.Parse(rect.Height.ToString());//将高度宽度赋值 ctlAppearance_position(Width, Height);为什么没有效果呢? 求具体详解.例如窗体有:panel ,里面有个label,textpictureboxpanel ,里面有datagrivew label这么设置? Anchor不适用这种情况的吧。楼主试试这个属性:AutoScaleMode ,这个是设置当屏幕分辨率或字体更改时窗体或控件的缩放方式的。 将AutoScaleMode属性设置为Dpi,就可以根据屏幕分辨率进行自动缩放了 汗这个属性是在设计的时候调整的,不是安装后。你试试呗,你在分辨率高的电脑上设计的时候更改这个属性,然后打包到分辨率低的电脑上安装,看有没有效果。自动缩放的执行过程是这样的:1、设计时,每一个 ContainerControl 分别在 AutoScaleMode 和 AutoScaleDimensions 中记录缩放模式和它的当前分辨率。 2、运行时,实际分辨率存储在 CurrentAutoScaleDimensions 属性中。 AutoScaleFactor 属性会动态计算运行时分辨率与设计时分辨率的比值。 如果是wpf,用viewbox作为顶层控件即实现自动缩放;如果是winform,比较麻烦,winform没有自动缩放的组件,这个需要你在布局的时候就考虑好,一般Anchor和dock等属性来相对定位和填充;一般的开发,应该实现一个最小分辨率,比如800*600定位最小分辨率,再小就会对界面外观造成比较大的影响,然后适应高分辨率下的排版,你这样优先实现高分辨,很难搞的~~~ 一般的办法是 achor+minsize 根本结局用wpf重新做UI 就是WINform,,没有用过 “Anchor和dock等属性” 谁给个布局的例子? 怎么用xmldocument读一个xml文件? C#的书 关于手写数字识别 大家帮忙讨论下这套系统的可行性 请问高手:如何实现类似csdn左边的树形结构,动态加载子节点 郁闷+怪事.....为什么导入excel时会出现这样的事......各位好心的人帮忙看看 C# winform程序 中调用 [DllImport("BX_IV.dll")] 这个dll 报错 急急急。。。。 如何生成所有字符串列表? MySqlBulkLoader 中文导入mysql为空 怎么解决? 这样的加密方式该如何去解? 不规则数据求和求方法 用正则表达式验证输入用户名的合法性,求大神指导
{
Form2 frm = new Form2();
foreach (Control control in (frm.Controls))
{
float a = control.Width * Width / 1600;
float b = control.Height *Height/900 ; control.Scale(new SizeF(control.Width / Width,control.Height / Height));
}
}
//载入初始化
private void Form2_Load(object sender, EventArgs e)
{
Rectangle rect = new Rectangle();//声明一个rect
rect = Screen.PrimaryScreen.Bounds;//获取当前屏幕的分辨率
int width, height;//声明宽度,高度
width = int.Parse(rect.Width.ToString());
height = int.Parse(rect.Height.ToString());//将高度宽度赋值
ctlAppearance_position(Width, Height);为什么没有效果呢?
求具体详解.例如窗体有:
panel ,里面有个label,text
picturebox
panel ,里面有datagrivew label
这么设置?
楼主试试这个属性:AutoScaleMode ,这个是设置当屏幕分辨率或字体更改时窗体或控件的缩放方式的。
1、设计时,每一个 ContainerControl 分别在 AutoScaleMode 和 AutoScaleDimensions 中记录缩放模式和它的当前分辨率。
2、运行时,实际分辨率存储在 CurrentAutoScaleDimensions 属性中。 AutoScaleFactor 属性会动态计算运行时分辨率与设计时分辨率的比值。
如果是winform,比较麻烦,winform没有自动缩放的组件,这个需要你在布局的时候就考虑好,一般Anchor和dock等属性来相对定位和填充;
一般的开发,应该实现一个最小分辨率,比如800*600定位最小分辨率,再小就会对界面外观造成比较大的影响,然后适应高分辨率下的排版,你这样优先实现高分辨,很难搞的~~~