如何实现类似CAD的图层功能

如题所述

    如果你是设计一个“上图系统”,那么所谓的把一个图形加入图层,其实就是把一个原来零散着的图形从控件树删除、然后加入另一个 UserControl 它的内部(例如 Grid 或者 Border 或者 Canvan 等等内)。那么自然就叠加为图层效果了。不需要写一行代码。

    比如说你把一个 UserControl 让它旋转,或者弹跳一下,或者放到另一个 UserControl的下面(也就是在它们共同的容器里,让这个用户控件排在另一个的前面,这样就在它的下面了),等等操作,你只要对 UserControl 做一下操作就行了,就跟让一根线、一个怕图片旋转或者弹跳一样地编程。

    因此 UserControl 实现了普通的绘图 Control 接口的所有功能,你并不需要自己写代码去遍历它内部的所有控件来旋转、弹跳。

    例如你可以监听自定义 UserControl 的点击事件,也可以通过你自己定义的放入图形的方法来注册监听每一个放入图形的点击事件。其它行为(例如拖动等等)也是如此。比如说当我们为图层1设置为“启用监听”,那么用户在图层1上的每一个定点的 click 和 mouseover、mousemove 等事件就可以被你捕获,知道用户用鼠标拉动了矩形一个顶点,你就可以把这个矩形的顶点动态地跟着鼠标而重新改变其坐标;而当你用户改变了图层1为“停止监听”,那么它就应该忽略捕获这些事件。

    这些编程都很很简单。关键是搞清楚逻辑层概念、关系。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-07-14
你是要变一个CAD程序?
相似回答