2012-06-25 10 views
3

Как найти центр экрана в любом разрешении?Как найти центр экрана в любом разрешении

Я хочу, чтобы моя программа появлялась в середине экрана -10 (по оси y).

(моя программа не в максимальном размере)

Я работаю с C# в WinForm.

+0

Что вам нужно [ 'Screen.WorkingArea'] (HTTP: // MSDN. microsoft.com/en-us/library/system.windows.forms.screen.workingarea.aspx) – V4Vendetta

ответ

4

Вы можете установить свойство StartPosition вашего основного WinForm на CenterScreen. Затем, если вы хотите, чтобы он каким-то образом отображался в другом месте относительно этого центра экрана, вы можете играть с объектами Top и Left, чтобы добавить или вычесть необходимое количество пикселей.

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. 
} 
0

Вы должны быть в состоянии сделать это следующим образом:

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

это может быть проблематично, если есть два или более экранов с разными разрешениями ... – webber2k6

3

Я бы с @ предложением DarinDimitrov, однако ... если вам нужно знать экран оценка:

System.Windows.Forms.Screen.PrimaryScreen.Bounds 

или, принимая во внимание панели задач:

System.Windows.Forms.Screen.PrimaryScreen.WorkingArea 

... или какой-то вариант

+0

Это может быть проблематично, если есть два или больше экранов с разными разрешениями ... – webber2k6

0

Попробуйте это:

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

Надеется, что это помогает