拖动改变大小?你用winfrom随便拖一个窗体过来不是都可以改变大小!窗体大小不就是高跟宽,鼠标左键按下时候记录鼠标位置p1,弹起的时候再记录下p2,宽=p2-p1(或者高=p2-p1)。反正大概也就是这么个思路。一般都是用wpf做这些东西。至于要具备哪些知识才能做那样的软件出来,你去研究一下wpf一两个月就可以做出图像效果了。至于生成代码,这个还得施主你自己去研究(关键是逻辑算法比较复杂)
这个做的公认不错的应该就是starUML画图工具吧
starUML 估计可以
基于面向对象的知识,可以一点点地去突破。以前我做的也只是画几个圆,多边形,正方形。