Aimin Han

SharePoint Server、Office、Silverlight、Flash、GIS、AVEVA NET & solutions 培训 咨询 设计
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Silverlight甘特图:三、甘特图面板开发原理

Posted on 2012-01-29 14:42  aimin  阅读(1750)  评论(0编辑  收藏  举报

1. 语法

1.1. XAML

2. 备注

2.1. 布局计算

GanttPanel与TimeLine的计算方法类似,仅计算ViewPort范围内需要绘制的任务项,但是多了一个参数YPosition。YPostion是纵向坐标上的位置。

纵向坐标轴:当前已展开的所有任务项中最顶端的YPosition=0,依次递增数为1。

GanttPanel.TaskEntryLayout.Rows属性枚举了所有展开的任务项,而GanttPanel.TaskEntryLayout.Items仅仅枚举了当前需要绘制的任务项。

同时GanttPanel.TaskEntryLayout布局计算,允许每行Row中有多个Items。这种情况一般应用在资源任务图表上,即查看每个资源所参加或负责的任务项。要实现资源任务图表,必须继承继承自AbstractTaskEntryLayout类,可参考SimpleTaskEntryLayout的实现,重新构造AbstractTaskEntryLayout.Rows成员项。同时,必须制定GanttPanel. TaskEntryLayoutProvider的值为自定义的Layout实现类。

2.2. 渲染

GanttPanel允许自定义渲染甘特图横向条目,要求实现ITaskEntryRenderer接口或继承自AbstractTaskEntryRenderer。在3.2.3 Walkthrough,将会给出一个通过这种方法创建关键路径显示的方式。

3. 示例