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


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

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

Координаты экрана

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

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

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

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

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

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

См. также