找回密码
 立即注册

QQ登录

只需一步,快速开始

781504429

注册会员

10

主题

36

帖子

102

积分

注册会员

积分
102

活字格认证

781504429
注册会员   /  发表于:2014-12-19 09:54  /   查看:7529  /  回复:5
wpf c1chart控件gantt类型,示例中单行数据只能设置一个开始、结束时间段,如何设置两个或多个开始、结束时间段,并在控件中以类似于图中效果显示出来

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

5 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2014-12-19 19:11:00
沙发
回复 1楼781504429的帖子

你的意思是一个任务变成变成两个开始、结束,并在不同的行显示?
所以在创建该任务的时候,你的任务下需要有两个不同的时间段,然后将该任务对应绑定C1Chart的Series系列。
1.在Task类里添加double[]类型的 value字段,代码参考:
  1.    class Task
  2.     {
  3.         public double[] Value { get; set; }
  4.         public string Name { get; set; }
  5.         public DateTime[] Start { get; set; }
  6.         public DateTime[] End { get; set; }
  7.         public bool IsGroup { get; set; }

  8.         public Task(string name, DateTime[] start, DateTime[] end, bool isGroup, double[] value)
  9.         {
  10.             Name = name;
  11.             Start = start;
  12.             End = end;
  13.             IsGroup = isGroup;
  14.             Value = value;
  15.         }
  16.     }
复制代码

2.GetTasks方法,代码参考:
  1. Task[] GetTasks()
  2.         {
  3.             DateTime start = new DateTime(2008, 1, 1, 1, 0, 0);
  4.             DateTime end = new DateTime(2008, 1, 1, 3, 0, 0);
  5.             DateTime[] startAlpha = new DateTime[] { start, start.AddHours(3) };
  6.             DateTime[] endAlpha = new DateTime[] { end, end.AddHours(5) };
  7.             double[] valueAlpha = new double[] {0.1,0.16 };

  8.             DateTime[] startSpec = new DateTime[] { start.AddHours(1), start.AddHours(4) };
  9.             DateTime[] endSpec = new DateTime[] { end.AddHours(1), end.AddHours(6) };
  10.             double[] valueSpec = new double[] { 0.1, 0.2 };

  11.             DateTime[] startPrototype = new DateTime[] { start.AddHours(2), start.AddHours(5) };
  12.             DateTime[] endPrototype = new DateTime[] { end.AddHours(2), end.AddHours(8) };
  13.             double[] valuePrototype = new double[] { 0.2, 0.3 };
  14.             return new Task[]
  15.             {
  16.                  new Task("Alpha", startAlpha, endAlpha,true,valueAlpha),
  17.                  new Task("Spec", startSpec,endSpec,true,valueSpec),
  18.                  new Task("Prototype", startPrototype, endPrototype, false,valuePrototype),
  19.                          };
  20.         }
复制代码

3.数据绑定。
用foreach语句遍历所有的task,并且根据任务创建Series,让Series的ValueSource绑定任务的开始和结束时间。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
781504429
注册会员   /  发表于:2014-12-23 15:47:00
板凳
回复 2楼Alice的帖子

试了一下,没有成功,能写个示例程序,让我看看吗
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-12-23 19:00:00
地板
回复 3楼781504429的帖子

该问题已经查收,Demo制作需要时间,我们会按顺序进行Demo的制作。
预计明天能给你反馈。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
781504429
注册会员   /  发表于:2014-12-24 09:37:00
5#
回复 4楼Alice的帖子

好的
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-12-24 16:57:00
6#
回复 5楼781504429的帖子

Sample在附件里。


效果如图:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部