我心依旧 发表于 2023-5-17 21:34:03

关于C1FlexChart 颜色的问题

C1FlexChart画柱状图,我用的数据绑定,比如总共有12条数据,项目中有个需求,如果某一个数据超过上限,那么这一数据对应的柱状图要求是红色,其他不变色,请问这个怎么实现?而且现在用数据绑定,在多线程重对这个绑定数据进行修改。

Richard.Ma 发表于 2023-5-18 13:44:39

SymbolRendering事件会在绘制每一个symbol时触发,也就是每个柱子绘制都会触发
你可以在这里判断,当该项目的值超过上限,给重新设置engine的样式。
甚至于,你也可以自己来绘制(注释的代码)

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

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

            }
      }

我心依旧 发表于 2023-5-29 22:47:54

谢谢,经常刷新画面会不会变慢呀,比较担心性能问题

Richard.Ma 发表于 2023-5-30 11:07:04

取决于你在这个事件中具体执行的代码,理论上来说影响应该并不大,除非你的数据量特别大(至少1W以上。)

建议实际测试一下。
页: [1]
查看完整版本: 关于C1FlexChart 颜色的问题