有没有办法让表单填充x%的屏幕?
问题描述:
我不知道是否有办法,而不是使用像素,在C#中调整窗体的大小?例如,让Form1填充屏幕的75%宽度和80%的屏幕高度?我已经尝试了一下阅读用户屏幕分辨率,然后从那里调整它,但我正在寻找不同的方法。我想这样做来解决不同屏幕分辨率的问题,所以我不必使用滚动条。有没有办法做到这一点,或者我应该只保留我的卷轴?有没有办法让表单填充x%的屏幕?
答
可以使用得到屏幕的分辨率:
Rectangle rect = Screen.AllScreens[0].Bounds;
//Maybe you need to use WorkingArea instead of Bounds.
从那里,你可以使用你想要的80%。更多的信息在这里:http://msdn.microsoft.com/en-us/library/system.windows.forms.screen.aspx
+0
是的,你肯定会想要使用['Screen.WorkingArea'](http://msdn.microsoft.com/en-us/library/system.windows.forms.screen.workingarea.aspx)。这不包括任务栏,停靠的窗口/工具栏等等。 – 2012-01-29 10:38:59
答
你会想要使用Load事件,所以你不受自动窗体缩放的影响。像这样:
protected override void OnLoad(EventArgs e) {
var scr = Screen.FromPoint(this.Location);
this.Size = new Size((int)(scr.WorkingArea.Width * 0.75),
(int)(scr.WorkingArea.Height * 0.80));
this.Location = new Point((scr.WorkingArea.Width - this.Width)/2,
(scr.WorkingArea.Height - this.Height)/2);
base.OnLoad(e);
}
这是WPF? Windows窗体? ASP.NET?你需要指定你正在谈论的技术。 C#只是语言。 – 2012-01-29 10:00:18
如果用户的屏幕不够大或者显示的数据太多,您仍然必须将滚动条作为后备。所以既然你不能完全消除它们,这有什么意义呢?让用户选择是否希望表单占用整个屏幕。如果他们这样做,标题栏中有一个方便的“最大化”按钮。 – 2012-01-29 10:40:46