我正在尝试将径向树显示为UI的一部分。树的数据是静态的,通常有几千个节点。仅仅绘制它本身并不是一件大事 - 我已经可以用我所知道的GTK和Cairo来管理它了。
我的问题是我希望有一个面板在背景图像上显示树,并允许用户放大和缩小以及进行交互(点击节点获取信息)。
这是一张非常粗略的图片,显示了我的应用程序的布局。黄色区域是我想要树的地方。 Layout Mockup http://img202.imageshack.us/img202/5391/roughsomock.png
以下是树形显示,分为四层。整个事物需要可缩放(包括背景图像)。 Tree Display Layers http://img577.imageshack.us/img577/7466/layersy.png
我尝试使用像素缓冲区重新缩放背景图像。只要它只是背景图像,这是功能性的(但不是很优雅),尽管我并不为结果感到自豪。什么时候,它使节点可点击,整个事情可缩放,但是,我有点迷失。特别是后半部分。
我一直在Linux上使用Mono和GTK的C#绑定。我愿意更换GUI工具包,如果这样可以使它变得更加容易,但只有它真的能让它变得更容易。给定树的大小(1000