我正在尝试解开winforms的所有位置和维度属性,如果有一个全面的概述来解释它们之间的关系,那将非常有用。其中许多似乎在功能上等同,但我担心我可能会做出一些错误的假设。
作为参考,我指的是Screen.PrimaryScreen.Bounds和Form.DesktopBounds等属性; Form.ClientRectangle与Form.DisplayRectangle; Form.left vs Form.Location.X; PointToScreen与Cursor.Position等等。我也对多个显示器对位置属性的影响特别感兴趣。
如果有人知道注释的图表,那将是非常棒的。
答案 0 :(得分:17)
作为部分答案,描述您在上面列出的属性:
Screen.PrimaryScreen.Bounds
为您提供主监视器的尺寸。在多显示器设置中,无论哪个屏幕设置为主屏幕。Form.DesktopBounds
为您提供整个“桌面”的组合边界,这是一个跨越所有活动监视器的虚拟画布。Form.ClientRectangle
提供表单客户区的区域(rect)(chrome中的空格)Form.DisplayRectangle
与Form.ClientRectangle
类似,但包含chrome(标题栏和表单边框)Form.Location.X
和Form.Left
实际上是相同的(也适用于顶部和Y),使用左上角作为0,0原点并增加x
和y
朝向右下角PointToScreen
返回“屏幕”坐标 - 但似乎与总桌面区域相关; Cursor.Position
返回类似的值如果您想了解有关客户端屏幕配置的更多信息,请查看Screen
class on MSDN。有些兴趣也可能是AllScreens
属性,它为您提供有关完整设置的详细信息。
修改强>:
好的 - 一个(简单的)概述;-)我也可以懒惰!