找回密码
 立即注册

QQ登录

只需一步,快速开始

还没想好
论坛元老   /  发表于:2014-8-27 09:29:00
11#
你好 还想补充问下 在ganttchart理使用HighLowSeries有没可能在一条series上 不同的段使用不同的颜色
谢谢
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-8-27 14:36:00
12#
回复 11楼还没想好的帖子

10#的解决方法我还需要时间调查,11#的问题收到,我的理解是你想对一条series上的不同值设置颜色,用以解决你的问题。
可以使用PlotElementLoaded事件来重画背景色。HighLowSeries调用PlotElementLoaded事件。
如下代码尝试对第一段进行了改背景色,代码参考:
  1.   var ds = new HighLowSeries();
  2.                 ds.PlotElementLoaded += new EventHandler(ds_PlotElementLoaded);  
  3. void ds_PlotElementLoaded(object sender, EventArgs e)
  4.         {
  5.             PlotElement pe = (PlotElement)sender;

  6.             if (pe == null)
  7.             {
  8.                 return;
  9.             }
  10.             if (pe.DataPoint.Name == "Alpha"&&pe.DataPoint.SeriesIndex==0)
  11.             {
  12.                 SolidColorBrush brush = new SolidColorBrush(Colors.Red);
  13.                 pe.Fill = brush;
  14.             }      
  15.         }
复制代码

经过你的提示,发现这样子问题就可以解决了。你在本地再次尝试下。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
还没想好
论坛元老   /  发表于:2014-8-27 16:35:00
13#
回复 12楼Alice的帖子

Hi Alice

通过你的Demo我能做到一条series不同段定义不同的颜色了。对于这种solution我们讨论了下 发现做这样的修改会引起其他的问题。最大的是legend的问题。我们的项目需要一个legend对应一种颜色来表示一种状态。如果只有一条series但包含多种颜色(状态)就没有办法表示出来。
感谢你做的的调查,但是否能继续请求你能对10#的方案再做出一些努力 谢谢
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-8-27 17:38:00
14#
回复 13楼还没想好的帖子

这个问题我会继续跟进的,不过我们处理问题都有一定的次序,还请等待。
你那边也可以根据我上面的提示,尝试下其他解决方法,比如给Y轴添加标签。
代码参考:
  1.   <c1:C1Chart.View>
  2.                 <c1:ChartView>
  3.                     <c1:ChartView.AxisY>
  4.                         <c1:Axis>
  5.                             <c1:Axis.Title>
  6.                                 <TextBlock Text="Alpha" TextAlignment="Center" Foreground="Crimson"/>
  7.                             </c1:Axis.Title>
  8.                         </c1:Axis>
  9.                     </c1:ChartView.AxisY>
  10.                 </c1:ChartView>
  11.             </c1:C1Chart.View>
复制代码
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
还没想好
论坛元老   /  发表于:2014-8-29 17:05:00
15#
你好 我们试过加标签的方法了 还是不能完成我们想要的效果。请问目前有没有什么方案调整itemnames的位置或者在Y轴旁边用其他方案来代替itemnames?

谢谢
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-9-1 14:02:00
16#
回复 15楼还没想好的帖子

又进行了测试,一个series对甘特图有对应关系,如下:
  1.         // create a new series for each &quot;row&quot; of the Gantt chart.
  2.                         // TASK ONE
  3.                         AddGanttSeriesData(cdsc, &quot;Task One&quot;,
  4.                                 new DateTime[]{new DateTime(2004,01,01)},
  5.                                 new DateTime[]{new DateTime(2004,03,09)});
复制代码

所以无法支持,如果要完成你的需求,只能通过其他方式绕。之前提到的给Y轴添加标签就是替代itemnames,可以使用控件来将需要显示的itemname放到里面。以及PlotElementLoaded事件重画,都依然不行么?

如果这些方法都不能满足,很抱歉我也没有更好的方法。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
还没想好
论坛元老   /  发表于:2014-9-2 09:41:00
17#
谢谢 我们试着 用绑定Y轴的itemsource来做了 可能可以解决
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-9-2 20:32:00
18#
回复 17楼还没想好的帖子

如果有任何结果欢迎反馈。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
还没想好
论坛元老   /  发表于:2014-9-3 15:08:00
19#
你好 我们用绑定Y轴的itemsource 找到了解决 方法

谢谢!
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-9-3 19:01:00
20#
回复 19楼还没想好的帖子

那就太好了,能否将解决方法反馈出来呢?我们有金币奖励。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

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