Windows 窗体坐标

Windows 窗体的坐标系统基于设备坐标,在 Windows 窗体中绘制时的基本度量单位是设备单元(通常是像素)。 屏幕上的点由 x 和 y 坐标对描述,x 坐标向右递增,y 坐标从上到下递增。 原点相对于屏幕的位置将根据指定的是屏幕坐标还是客户端坐标而变化。

屏幕坐标

Windows 窗体应用程序以屏幕坐标指定窗口在屏幕上的位置。 对于屏幕坐标,原点位于屏幕的左上角。 窗口的完整位置通常由 Rectangle 结构描述,该结构包含定义窗口左上角和右下角的两个点的屏幕坐标。

客户端坐标

Windows 窗体应用程序使用客户端坐标指定窗体或控件中点的位置。 客户端坐标的原点位于控件或窗体的工作区的左上角。 客户端坐标确保应用程序可以在窗体或控件中绘图时使用一致的坐标值,而不管窗体或控件在屏幕上的位置如何。

工作区的维度也由 Rectangle 结构描述,该结构包含该区域的客户端坐标。 在所有情况下,矩形的左上角坐标都包含在工作区中,同时排除右下角坐标。 图形操作不包括工作区的右边缘和下边缘。 例如,FillRectangle 方法将填充到指定矩形的右边缘和下边缘,但不包括这些边缘。

从一种坐标类型映射到另一种坐标类型

有时,可能需要从屏幕坐标映射到客户端坐标。 通过使用 Control 类提供的 PointToClientPointToScreen 方法可轻松完成此操作。 例如,ControlMousePosition 属性以屏幕坐标报告,但你可能希望将这些转换为客户端坐标。

另请参阅