如何在任何分辨率下找到屏幕中心?
我希望我的程序出现在屏幕中间 -10(在 y 轴上)。
(我的程序不是最大尺寸)
我在 WinForm 中使用 C#。
您可以将StartPosition
主 WinForm 的属性设置为CenterScreen
. 然后,如果您希望它以某种方式出现在相对于此屏幕中心的不同位置,您可以使用Top
andLeft
属性来添加或减去所需的像素数。
但是,我会接受@DarinDimitrov 的建议……如果您需要知道屏幕边界:
System.Windows.Forms.Screen.PrimaryScreen.Bounds
或者,考虑到任务栏:
System.Windows.Forms.Screen.PrimaryScreen.WorkingArea
...或一些变体
这可能会帮助你
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.
}
你应该可以这样做:
var screensize = Screen.PrimaryScreen.Bounds;
var programsize = Bounds;
Location = new Point( (screensize.X-programsize.X)/2,
(screensize.Y-programsize.Y)/2 - 10 );
尝试这个:
new Point((this.Width + this.Location.X) / 2 - popupControlContainer1.Width / 2,
(this.Height + this.Location.Y) / 2 - popupControlContainer1.Height / 2)
希望能帮助到你