要在C# WinForm中实现窗体的自适应电脑分辨率,可以按照以下步骤进行操作:
-
在窗体的属性中设置
FormBorderStyle
属性为Sizable
,以允许用户调整窗体大小。 -
在窗体的
Load
事件中,添加以下代码来获取当前屏幕的分辨率:int screenWidth = Screen.PrimaryScreen.Bounds.Width; int screenHeight = Screen.PrimaryScreen.Bounds.Height;
-
使用
Screen
类中的GetWorkingArea
方法来获取除去任务栏的工作区域的分辨率,以便考虑到任务栏的影响:Rectangle workingArea = Screen.GetWorkingArea(this); int workingWidth = workingArea.Width; int workingHeight = workingArea.Height;
-
根据当前屏幕的分辨率调整窗体的大小和位置,可以在
Form
的Resize
事件中添加以下代码:private void Form1_Resize(object sender, EventArgs e) { int formWidth = 800; // 设置窗体的初始宽度 int formHeight = 600; // 设置窗体的初始高度 // 计算窗体的缩放比例 float widthRatio = (float)workingWidth / formWidth; float heightRatio = (float)workingHeight / formHeight; float scale = Math.Min(widthRatio, heightRatio); // 缩放窗体的控件 this.Scale(new SizeF(scale, scale)); // 调整窗体的位置 int x = (workingWidth - this.Width) / 2; int y = (workingHeight - this.Height) / 2; this.Location = new Point(x, y); }
这样,在调整窗体大小或更改分辨率时,窗体和窗体中的控件将会自动根据屏幕的分辨率进行适应调整。请注意适当调整上述示例代码中的初始窗体宽度和高度,并根据实际需求进行进一步修改。