我需要在C#WinForms中绘制一个大型的交互式树形结构 - 一个公司层次结构。C#交互式绘图#
除了将排列在树上的块可能会非常复杂的算法之外,我并不确定如何去实现实际的画布和绘制代码。乍一看,我可以创建一个巨大的图像(或一个大图像矩阵),并使用一个Graphics
或BufferedGraphics
来呈现给定用户放大的一个小区域。这会给缩放和平移您可能会在Google地图上看到的效果。
至于交互性,这里可以做些什么?我希望用户能够强调某些人(特定成本中心的人员,承包商的人等)。而且,如果随着用户放大,树显示更多有关员工的信息,这将非常酷。我是否应该用MouseMove
事件进行命中测试,并以编程方式添加/删除/更改构成画布上图片的内容?
这是我应该避免使用GDI,也许使用DirectDraw来代替吗?我不想过度使用 - 我只是想能够直观地呈现结构并让用户选择打印它。
另外,是否有一个(免费软件?)库可用,允许缩放和平移与交互?我可能会问一些,但也许也可以处理树结构?
我对小规模的每个个体概念都有经验,但没有一个像这样的大型结构聚集在一起。我预测如果我做错了什么,它会变成非常缓慢,缓慢和记忆困难的事情。
我只涉猎了WPF。我几乎完全在.Net中使用WinForms - WPF中有什么可以使这个任务变得更容易?
就像我说过的,我对每一个人的概念都很熟悉和实践,但从来没有把它整合到一个像这样的大型互动展示中。我可以向你保证,你的建议当然有帮助!谢谢。 – user1002358
很高兴能帮到你! :-) –