Начните с получения экземпляра Screen , представляющего интерес. Если вам нужен только основной монитор, просто попросите экземпляр PrimaryScreen . Однако, если вам нужен монитор с указателем мыши, используйте статический метод FromPoint .
// Main monitor
Screen s = Screen.PrimaryScreen;
// Monitor that contains the mouse pointer
Screen s = Screen.FromPoint(Cursor.Position);
Чтобы получить необработанные границы монитора, просто используйте свойство экземпляра Bounds . Но если вам нужна рабочая область монитора, область, оставшаяся после выделения пространства для панели задач и виджетов, используйте свойство экземпляра WorkingArea .
// Raw bounds of the monitor (i.e. actual pixel resolution)
Rectangle b = s.Bounds;
// Working area after subtracting task bar/widget area etc...
Rectangle b = s.WorkingArea;
Наконец, поместите мышь в центр рассчитанных границ.
// On multi monitor systems the top left will not necessarily be 0,0
Cursor.Position = new Point(b.Left + b.Width / 2,
b.Top + b.Height / 2);