作者:壹路上有祢_522 | 来源:互联网 | 2024-12-24 15:29
本文介绍了一个使用Silverlight开发的可视化工具,主要用于展示和操作复杂的实体关系图(Graph)。该工具在犯罪调查系统中得到了广泛应用,帮助用户直观地获取和理解相关信息。
本项目中的Map实际上指的是Graph的概念,用于表示节点之间的关系。在过去的一年里,我一直在使用Silverlight进行应用程序开发,并在一个犯罪调查系统中实现了将相关实体可视化的功能,以供客户更直观地获取信息。
最近利用一些空闲时间,我对这个工程进行了简化,并将其命名为Link Map Simplified,以便于大家参考和学习。
以下是工程文件的结构:
效果图如下:
项目涉及的主要文件及对应UI部分如下:
- Views:
- EasyEntity.xaml -- 节点 (Node)
- EasyLine.xaml -- 线 (Line)
- EasyBoard.cs -- 绘图区,基于Canvas实现
- EasyProperty.cs -- 右侧属性框,用于显示和修改选中节点或线的属性
- EasyMenuBox.cs -- 顶部菜单栏,包含添加和删除按钮
- EasyWorkspace -- 协调各个部分(菜单、绘图区、属性框)的工作
Utils:
工程中使用XML定义了要显示的实体及其属性。这些定义包括对象类型(Object Type)和实体类型(EntityType),可以参见以下示例:
Object Type & HxObjectType -- 用于管理和承载ObjectType.xml中的数据;
EntityType & HxEntityType -- 用于管理和承载EntityType.xml中的数据;
UI中的属性面板的数据来源于这些XML文件,你可以根据需要扩展这些定义。
此外,还有一些辅助类用于支持主要功能。
Link Map Simplified 包含以下功能:
- 创建节点和连线:通过鼠标拖动红色圆点连接两个节点;
- 任意拖动节点和连线;
- 多选功能:通过拖拽选择多个节点,同时移动;
- 删除功能:虽然没有快捷键,但可以自行添加。
基于这些基础功能,你可以进一步拓展:
- 编辑节点和连线的标签;
- 利用Silverlight 3的新特性WriteableBitmap实现图像导出和打印;
- 序列化Graph并保存为自定义格式文件,增加加载功能。
该项目结构清晰,适合Silverlight初学者和中级开发者参考。如果有任何建议或疑问,欢迎下载研究并提出宝贵意见。
请确保安装了Silverlight 3.0以上版本的开发工具包(3.4或4.0均可)。
【下载链接】
Jack.
2011-02-03 新泽西。