如何以任何分辨率找到屏幕的中心

时间:2012-06-25 08:40:27

标签: c# winforms

如何以任何分辨率找到屏幕中心?

我希望我的程序出现在屏幕-10的中间(在y轴上)。

(我的程序不是最大尺寸)

我在WinForm中使用C#。

5 个答案:

答案 0 :(得分:4)

您可以将主WinForm的StartPosition属性设置为CenterScreen。然后,如果您希望它以某种方式显示在相对于此屏幕中心的不同位置,您可以使用TopLeft属性来添加或减去所需的像素数。

答案 1 :(得分:3)

我会选择@ DarinDimitrov的建议,但是......如果你需要知道屏幕边界:

System.Windows.Forms.Screen.PrimaryScreen.Bounds

或考虑到任务栏:

System.Windows.Forms.Screen.PrimaryScreen.WorkingArea

......或某些变体

答案 2 :(得分:0)

这可能对您有所帮助

private void center_Load(object sender, System.EventArgs e)
{
// Position the Form on The screen taking in account
the resolution
//
Rectangle screenRect = Screen.GetBounds(Bounds);
// get the Screen Boundy
ClientSize = new Size((int)(screenRect.Width/2),

(int)(screenRect.Height/2)); // set the size of the form
Location = new
Point(screenRect.Width/2-ClientSize.Width/2,

screenRect.Height/2-ClientSize.Height/2); // Center the Location of
the form.
}

答案 3 :(得分:0)

你应该能够这样做:

var screensize = Screen.PrimaryScreen.Bounds;
var programsize = Bounds;
Location = new Point( (screensize.X-programsize.X)/2,
                                  (screensize.Y-programsize.Y)/2 - 10 );

答案 4 :(得分:0)

试试这个:

new Point((this.Width + this.Location.X) / 2 - popupControlContainer1.Width / 2,
          (this.Height + this.Location.Y) / 2 - popupControlContainer1.Height / 2)

希望有所帮助