第一篇:C#之Legend学习

第一次写博客,分享一些今天我在legend上的遇到的小坑

今天我在做上位机的时候,想要加一些图例,来区分实时图形中的折线代表的意义,开始我按照各种办法来调试(写代码、调属性)Legend,都无法显示出来。然后我又回到最初的起点,从可拖拽界面那去寻找Legend的奥秘,最后发现是我把legend的属性Enable设置成了False,导致一直无法显示图例。

具体查找方式为
首先点开我们要画图的chart的属性部分,找到Legend。
首先Legends进入到Legend的编辑区,将外观的Enable属性改为True。此属性代表着图例可见不可见。

就可以了。
在这里插入图片描述
就很简单的一个部分,我各种改代码,各种试,浪费了好几个小时。害,还是怪自己不熟练啊。
下面说说怎么改Legend的颜色以及文字吧。我做的是折线图的图例,只需要写出来每个颜色线代表什么意思就可以。不用加实时数据。
在刚开始没有加载出来数据时,图例会显示一个颜色。如下图。
在这里插入图片描述
此时的颜色取决于窗体设计器生成的关于Series代码,series1.Color = System.Drawing.Color.Red;
在数据未加载出来之前显示。
当数据加载出来了,此时图例颜色完全与设定曲线的颜色一致。但是问题是,如果legend前后颜色不一样,就会出现一个变化的过程就很别扭。所以就可以把窗体自动生成代码里的颜色改成与.cs文件里设定的Series颜色一致,如果在.designer.cs文件里没有相应series颜色的代码可以自己添一行。

 series1.BorderWidth = 2;
            series1.ChartArea = "ChartArea1";
            series1.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline;
            series1.Color = System.Drawing.Color.Red;
            series1.LabelBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
            series1.Legend = "Legend1";
            series1.MarkerSize = 1;
            series1.Name = "从机1";
            series2.ChartArea = "ChartArea1";
            series2.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline;
            series2.IsValueShownAsLabel = true;
            series2.Legend = "Legend1";
            series2.MarkerSize = 1;
            series2.Name = "从机2";
            series3.ChartArea = "ChartArea1";

series2没有颜色设置, 可以加一句:series2.Color = System.Drawing.Color.Black;
与后面再次定义的的series2保持一致。
.cs文件中出现的是:

System.Windows.Forms.DataVisualization.Charting.Series series2 = new System.Windows.Forms.DataVisualization.Charting.Series()
            {
                ChartType = SeriesChartType.Spline,
                BorderWidth = 1,
                IsValueShownAsLabel = true,
                ShadowOffset = 1,
                Color = Color.Black,
               LegendText = "从机2"

            };

最后来说一下,怎么更改legend的文字。在此legend所对应的seriel的属性设置里,加入

 LegendText = "从机1"

就可以用legend描述曲线代表意义了。

第一次写文章,感觉写博客好有意义,可以帮助自己把所有东西梳理一遍,加深理解。Nice!
有bug的地方,请多多指出,谢谢大家,祝您暴富!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值