[.NET] 坐标变换
2012-01-09 15:49 Mr.Albert 阅读(315) 评论(0) 编辑 收藏 举报假设在窗体上的Panel1里面放置一个BUTTON1控件 关于坐标的获取 1. this.button1.location //获取的是窗体相对于父容器的坐标,此处获取的坐标就是Button1相对于Panel的坐标 2. 获取相对于屏幕的坐标,此坐标一屏幕左上角为起点 point p1= this.button1.PointToScreen(this.button1.Location); 3. 转化为相对于父容器的坐标,此处得到结果和1一样 Point p2 = this.button1.PointToClient(p1); 4. 获取BUTTON1相对于窗体的坐标,此处通过转换相对于屏幕的坐标来得到相对于窗体的坐标 把改点坐标转换为相对于窗体坐标 Point p = this.PointToClient(p1); 5.ClientRectangle 获取表示控件的工作区的矩形。 控件的工作区是控件的边界减去非工作区元素(如滚动条、边框、标题栏和菜单)所以会有一定的偏差 一个 Rectangle,它表示控件的工作区。 6.RectangleToScreen 方法 计算指定工作区矩形的大小和位置(以屏幕坐标表示)。 参数
7. DragOffset 拖放设置 8.本地坐标转换为屏幕坐标 Point pos = this.Parent.PointToScreen(this.Location); pos = this.ParentForm.PointToClient(pos); |
原文链接:http://hi.baidu.com/loun/blog/item/1b43bdafc9309ada7dd92a1d.html