Windows 窗体坐标
Windows 窗体的坐标系基于设备坐标,在 Windows 窗体中绘制时的基本度量单位是设备单位(通常为像素)。 屏幕上的点由 x 坐标和 y 坐标对描述,x 坐标向右增加,y 坐标从上到下增加。 原点相对于屏幕的位置会有所不同,具体取决于是指定屏幕还是客户端坐标。
屏幕坐标
Windows 窗体应用程序以屏幕坐标指定窗口在屏幕上的位置。 对于屏幕坐标,原点为屏幕左上角。 窗口的整个位置通常由一个 Rectangle 结构描述,该结构包含两个点的屏幕坐标,用于定义窗口的左上角和右下角。
客户端坐标
Windows 窗体应用程序使用客户端坐标指定窗体或控件中点的位置。 客户端坐标的原点是控件或窗体的客户区左上角。 客户端坐标可确保应用程序可以在窗体或控件中绘图时使用一致的坐标值,而不管窗体或控件在屏幕上的位置如何。
客户区的尺寸也由一个包含该区域客户端坐标的 Rectangle 结构进行描述。 在所有情况下,矩形的左上角坐标包含在客户区中,而右下角坐标则不包括在内。 图形操作不包括工作区的右边缘和下边缘。 例如,FillRectangle 方法将填充到指定矩形的右边缘和下边缘,但不包括这些边缘。
从一种坐标类型映射到另一种坐标类型
有时,可能需要从屏幕坐标映射到客户端坐标。 可以使用 Control 类中提供的 PointToClient 和 PointToScreen 方法轻松实现此目的。 例如,Control 的 MousePosition 属性是以屏幕坐标表示的,但可能需要将其转换为客户端坐标。