找回密码
 立即注册

QQ登录

只需一步,快速开始

我心依旧

注册会员

13

主题

23

帖子

84

积分

注册会员

积分
84
我心依旧
注册会员   /  发表于:2023-5-17 21:34  /   查看:2282  /  回复:3
C1FlexChart画柱状图,我用的数据绑定,比如总共有12条数据,项目中有个需求,如果某一个数据超过上限,那么这一数据对应的柱状图要求是红色,其他不变色,请问这个怎么实现?而且现在用数据绑定,在多线程重对这个绑定数据进行修改。

3 个回复

倒序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-5-18 13:44:39
沙发
SymbolRendering事件会在绘制每一个symbol时触发,也就是每个柱子绘制都会触发
你可以在这里判断,当该项目的值超过上限,给重新设置engine的样式。
甚至于,你也可以自己来绘制(注释的代码)

  1.         private void Flexchart_SymbolRendering(object sender, C1.WPF.Chart.RenderSymbolEventArgs e)
  2.         {
  3.             if (((Point)e.Item).X == 3000)
  4.             {
  5.                 e.Engine.SetFill(new SolidColorBrush(Colors.Red));
  6.                 e.Engine.SetStroke(new SolidColorBrush(Colors.Red));
  7.                 e.Engine.SetStrokeThickness(2000);

  8.                 //e.Engine.DrawRect(e.Point.X - 5, e.Point.Y, 10, chart.PlotRect.Bottom- e.Point.Y);

  9.             }
  10.         }
复制代码
回复 使用道具 举报
我心依旧
注册会员   /  发表于:2023-5-29 22:47:54
板凳
谢谢,经常刷新画面会不会变慢呀,比较担心性能问题
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-5-30 11:07:04
地板
取决于你在这个事件中具体执行的代码,理论上来说影响应该并不大,除非你的数据量特别大(至少1W以上。)

建议实际测试一下。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部