找回密码
 立即注册

QQ登录

只需一步,快速开始

Quanweiz
初级会员   /  发表于:2022-11-28 11:10  /   查看:1438  /  回复:9


通过下面的方法试了,没有达到想要的效果,需要实现的是 if (data.S11 > -18) 大于-18的Yellow,小于的红色。



        float previousX, previousY;
        int sequentialIncrement, sequentialDecrement;
        private void Series_SymbolRendered(object sender, RenderSymbolEventArgs e)
        {


            if (e.Index > 0)
            {
                Color lineColor;
                DataItem data = (DataItem)e.Item;

                if (data.S11 > -18)
                {
                    lineColor = Color.Yellow;
                }
                else
                {
                    lineColor = Color.Red;
                }


                e.Engine.SetStroke(new SolidBrush(lineColor));
                e.Engine.SetStrokeThickness(0.5);
                e.Engine.DrawLine(previousX, previousY, e.Point.X, e.Point.Y);
            }

            previousX = e.Point.X;
            previousY = e.Point.Y;
        }

本帖子中包含更多资源

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

x

9 个回复

倒序浏览
Quanweiz
初级会员   /  发表于:2022-11-28 11:47:39
沙发



例如附件的事例,我想设置50值以上的曲线红色,以下的绿色。怎么实现?

本帖子中包含更多资源

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

x
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-11-28 11:54:50
板凳
本帖最后由 Richard.Ma 于 2022-11-28 12:27 编辑

请参考附件中的代码





最终效果,大于50的点,以及该点两端的线是红色,你也可以根据自己的业务逻辑修改



本帖子中包含更多资源

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

x
回复 使用道具 举报
Quanweiz
初级会员   /  发表于:2022-11-28 13:08:38
地板


有没有办法设置两个点同时达到条件时才改变线的颜色?

本帖子中包含更多资源

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

x
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-11-28 13:35:35
5#
修改代码就行,具体可以跟你你自己的业务需要,这里只是展示自定义绘制的方法

本帖子中包含更多资源

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

x
回复 使用道具 举报
Quanweiz
初级会员   /  发表于:2022-11-28 13:56:47
6#



还有就是这个线宽在分辨率低的时候线比较粗,比我实际画的线粗好多,一直没有找到方法改变。

本帖子中包含更多资源

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

x
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-11-28 14:06:25
7#

要改变自己绘制的线条粗细,只需要更改DrawLine时Pen的线条粗细就行,可以改任意宽度

要改变series本身绘制的线条宽度,可以通过样式直接设置,extraSerie.Style.StrokeWidth = 1;

如下图,红色是后绘制的,绿色是自动绘制的,都改变了粗细

本帖子中包含更多资源

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

x
回复 使用道具 举报
Quanweiz
初级会员   /  发表于:2022-11-28 14:11:31
8#



extraSerie.Style.StrokeWidth = 1;线粗我设置这个可以改变了。

本帖子中包含更多资源

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

x
回复 使用道具 举报
Quanweiz
初级会员   /  发表于:2022-11-28 15:19:21
9#
已经处理好了。
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-11-28 15:29:32
10#
好的,你问到的绘图区域可以这样设置边框和背景

  1.             flexChart1.PlotStyle.FillColor = Color.LightYellow;
  2.             flexChart1.PlotStyle.StrokeColor = Color.Red;
  3.             flexChart1.PlotStyle.StrokeWidth = 3;
复制代码



有其他问题,欢迎发新帖咨询
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部