3

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

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

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

我在 WinForm 中使用 C#。

4

5 回答 5

4

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

于 2012-06-25T08:43:28.397 回答
3

但是,我会接受@DarinDimitrov 的建议……如果您需要知道屏幕边界:

System.Windows.Forms.Screen.PrimaryScreen.Bounds

或者,考虑到任务栏:

System.Windows.Forms.Screen.PrimaryScreen.WorkingArea

...或一些变体

于 2012-06-25T08:46:41.493 回答
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.
}
于 2012-06-25T08:45:14.310 回答
0

你应该可以这样做:

var screensize = Screen.PrimaryScreen.Bounds;
var programsize = Bounds;
Location = new Point( (screensize.X-programsize.X)/2,
                                  (screensize.Y-programsize.Y)/2 - 10 );
于 2012-06-25T08:45:22.037 回答
0

尝试这个:

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

希望能帮助到你

于 2013-03-26T13:56:44.933 回答