如何以任何分辨率找到屏幕中心?
我希望我的程序出现在屏幕-10的中间(在y轴上)。
(我的程序不是最大尺寸)
我在WinForm中使用C#。
答案 0 :(得分:4)
您可以将主WinForm的StartPosition
属性设置为CenterScreen
。然后,如果您希望它以某种方式显示在相对于此屏幕中心的不同位置,您可以使用Top
和Left
属性来添加或减去所需的像素数。
答案 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)
希望有所帮助