我希望为我的.NET窗口应用程序创建一个直观的树状视图结构(类似于思维导图)。
与this或this类似的东西
我最初计划开发一个示例应用程序,其中我的应用程序只读取底层的结构化XML,以创建类似于可视化的思维导图,并将其显示给用户。用户可以选择所显示的树节点中的任何一个。如果该节点有子节点,则当用户点击相应的父节点时会显示出来。
为了实现这一点,我首先需要一个正确的方向上的提示或帮助。任何帮助我们都深表感谢
发布于 2011-12-22 21:38:27
我以前用WPF从头开始做过网络图,但没有做过思维导图。这并不容易,每一步都需要几页来解释。因此,我在下面快速启动了我如何完成我的网络图。我认为除了节点和节点连接器的布局和可视化表示之外,没有太大的区别。
首先从你的收藏开始。MSDN在这里有一个杀手级的有向图集合:http://msdn.microsoft.com/en-us/library/ms379574(v=vs.80).aspx。
在建立集合之后,您将需要扩展Panel类,以便它可以为您执行布局。我不知道任何现有的思维导图布局面板,但这里有一个到径向面板布局的链接:http://msdn.microsoft.com/en-us/library/ms771363(v=vs.90).aspx。它应该会向您显示在自定义布局中放置内容所需的步骤。
您还需要一种直观地表示有向图节点的方法。关于WPF的美妙之处在于你可以创建自己的UserControls,如果你的面板是为正确布局而创建的,它将为你的自定义控件执行所有的布局工作。我的网络地图只是一个以椭圆为背景的UserControl,被扔进了一个径向面板。
最后一步是检查图形集合并在连接的节点之间绘制连接器。在我的有向图集合中,我添加了一个名为Tag的object类型的属性,并存储了该节点的UserControl版本。这样,我就可以知道连接的UserControls的坐标,并且可以用PolyLine将它们连接起来。我认为对你来说不同的是,你会希望你的连接器是Image。
这是一个快速的版本。我很想在这里发布更多的源代码,但我写它是为了工作,他们会杀了我的。
https://stackoverflow.com/questions/8585954
复制相似问题