我的程序尺寸为800x600。
如果最大化,我想让这个程序扩展,以便所有元素(按钮,图片框)根据用户的窗口屏幕分辨率改变大小以适应新的比例。
我想要解决这个问题的方法是采用用户屏幕分辨率并手动更改所有内容的大小,并针对所有常见分辨率执行此操作,如果用户有一些罕见的分辨率,那么只需将其设置为最大化/最小化按钮被禁用。
但这会非常耗时,因为表格中有很多元素,而且它们是多种形式......
基本上,有快捷方式吗?也许内置功能或VS2008的某种添加。
有哪些方法可以解决这个问题?
答案 0 :(得分:0)
你可能已经注意到的AS,几乎每个Windows程序都有一个最大化按钮。所以这肯定是一个普遍的问题,确实存在解决方案。
通常,您不会使用固定分辨率。这真是一场失败的比赛,只是因为任务栏带走了一个未指定的空间。即使您辛辛苦苦地列举了所有不同的案例,您也可能需要为Windows 8重做它。
相反,您通常会在不同的控件上显示“额外”空间。例如,由于您的应用程序至少为800x600,因此1024x732桌面上的额外空间将是水平224和垂直132。您的菜单栏很可能已经知道如何处理:它需要100%的额外水平空间和0%的垂直空间。对于窗口中的其他控件,您可以定义类似的百分比。通常,指定的百分比为0%和/或100%。在WinForms中,您只需要告诉您的Windows布局引擎。
此外,您还应该为控件使用相对定位。例如,如果窗口左侧有100%可扩展的textedit,右侧有固定按钮,那么您应该将该按钮放在相对于右边缘的位置。在WinForms中,这可以通过Anchor属性来实现。