Поделиться через


Координаты Windows Forms

Система координат для форм Windows Forms основана на координатах устройства, и основной единицей измерения при рисовании в формах Windows Forms является единица устройства (обычно точки). Точки на экране описываются парой координат x и y, координата x увеличивается слева направо, а координата y увеличивается сверху вниз. Расположение начала отсчета, относительно экрана, будет изменяться в зависимости от того, указываются ли экранные или клиентские координаты.

Экранные координаты

Приложение Windows Forms задает положение окна на экране в экранных координатах. Для экранных координат началом отсчета является левый верхний угол экрана. Полное положение окна часто описывается структурой Rectangle, содержащей экранные координаты двух точек, определяющих левый верхний и правый нижний угол окна.

Клиентские координаты

Приложение Windows Forms указывает положение точек на форме или элементе управления с помощью клиентских координат. Началом отсчета клиентских координат является верхний левый угол клиентской области элемента управления или формы. Применение клиентских координат гарантирует, что приложение может использовать согласованные значения координат во время рисования в форме или элементе управления, независимо от положения формы или элемента управления на экране.

Размеры клиентской области также описываются структурой Rectangle, содержащей клиентские координаты области. Во всех случаях верхняя левая координата прямоугольника включается в клиентскую область, а правая нижняя координата исключается. Графические операции не включают правой и нижней границ клиентской области. Например, метод FillRectangle закрасит область до правой и нижней границ указанного прямоугольника, но не закрасит эти границы.

Сопоставление одного типа координат с другим

Периодически требуется сопоставлять экранные координаты с клиентскими. Это легко сделать с помощью методов PointToClient и PointToScreen, доступных в классе Control. Например, значение свойства MousePosition класса Control возвращается в экранных координатах, но может потребоваться преобразовать эти координаты в клиентские.

См. также

Ссылки

PointToClient

PointToScreen