C#中ZedGraph控件怎么没有myPane.chart.Fill?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#中ZedGraph控件怎么没有myPane.chart.Fill?相关的知识,希望对你有一定的参考价值。

参考技术A // Build the Chart
private void CreateGraph( ZedGraphControl zgc )

// get a reference to the Graphpane
GraphPane myPane = zgc.GraphPane;
// Set the Titles
myPane.Title.Text = "My Test Graph";
myPane.XAxis.Title.Text = "My X Axis";
myPane.YAxis.Title.Text = "My Y Axis";
// Make up some data arrays based on the Sine function
double x, y1, y2;
PointPairList list1 = new PointPairList();
PointPairList list2 = new PointPairList();
for ( int i = 0; i < 36; i++ )

x = (double)i + 5;
y1 = 1.5 + Math.Sin( (double)i * 0.2 );
y2 = 3.0 * ( 1.5 + Math.Sin( (double)i * 0.2 ) );
list1.Add( x, y1 );
list2.Add( x, y2 );

// Generate a red curve with diamond
// symbols, and "Porsche" in the legend
LineItem myCurve = myPane.AddCurve( "Porsche",
list1, Color.Red, SymbolType.Diamond );
// Generate a blue curve with circle
// symbols, and "Piper" in the legend
LineItem myCurve2 = myPane.AddCurve( "Piper",
list2, Color.Blue, SymbolType.Circle );
// Tell ZedGraph to refigure the
// axes since the data have

DevExpress的进度条控件ProgressBarControl的使用-以ZedGraph添加曲线进度为例

场景

Winform控件-DevExpress18下载安装注册以及在VS中使用:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100061243

在使用ZedGraph进行添加曲线时,曲线数量如果很多的情况下,速度会比较慢。

所以在进行添加曲线的过程中需要显示进度,效果如下

技术图片

 

 

注:

博客主页:
https://blog.csdn.net/badao_liumang_qizhi
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。

实现

在当前要添加进度条的页面打开设计器,并在安装了DevExpress的工具箱中拖拽一个ProgressBarControl

 技术图片

 

 

然后在当前窗体的构造方法中进行进度条控件的一些属性设置

public FrmCurveCompareInOne()
        {
            InitializeComponent();
            progressBarControl1.Visible = true;
            //设置一个最小值
            progressBarControl1.Properties.Minimum = 0;
            //设置一个最大值
            progressBarControl1.Properties.Maximum = 100;
            //设置进度条的样式
            progressBarControl1.Properties.ProgressViewStyle = DevExpress.XtraEditors.Controls.ProgressViewStyle.Solid;
            //当前值
            progressBarControl1.Position = 0;
            //是否显示进度数据
            progressBarControl1.Properties.ShowTitle = true;
            //是否显示百分比
            progressBarControl1.Properties.PercentView = true;
           
        }

然后在触发显示进度条的方法中传递当前进度条对象

ChartCompareHelper.RefreshPaneComInOne(this.zedGraphControl1, xYModelStore.YAxisModelList,this.progressBarControl1);

在上面刷新ZedGraph的图形的方法中,添加曲线的部分进行进度的设置

 if (yList != null && yList.Count > 0)
            {
                PointPairList list = null;
                for (int i = 0; i < yList.Count; i++)
                {
                    //截取前100个循环进行显示
                    Global.Instance.PrepareCompareDataInOne = Global.Instance.PrepareCompareDataInOne.Where(p => (int.Parse(p.Id) < 101)).ToList();
                    //计算进度条步长
                    int step = 1;
                    //曲线总数小于100 
                    if (Global.Instance.PrepareCompareDataInOne.Count < 100)
                    {
                        step = 100 / Global.Instance.PrepareCompareDataInOne.Count;
                    }
                    else
                    {
                        step = Global.Instance.PrepareCompareDataInOne.Count / 100;
                    }
                    if(progressBar !=null)
                    {
                        //将进度条初始化为0%
                        progressBar.Position = 0;
                    }
                    //循环添加曲线
                    foreach(DataTreeNode node in Global.Instance.PrepareCompareDataInOne)
                    {
                        IEnumerable<Entity.Record> record =  Global.Instance.VirtualData.RecordDataList.Where(p => p.CycleIndex == int.Parse(node.Id));
                        list = SetCurveTextInOne(yList[i].TitleKey,record);
                        LineItem myCurve = myPane.AddCurve(yList[i].Title, list, System.Drawing.ColorTranslator.FromHtml(yList[i].Color), SymbolType.None);
                        myCurve.YAxisIndex = i;                                                                 //很关键,对应使用那个坐标值
                        if(progressBar !=null)
                        {
                            //添加成功一条曲线则进度条增加一个步数
                            progressBar.Position += step;
                            if (progressBar.Position >=100)
                            {
                                //如果总进度已经大于100了 则赋值为100
                                progressBar.Position = 100;
                            }
                            //更新进度条的进度
                            progressBar.Update();
                        }
                    }
                    if (progressBar != null)
                    {
                        //最终添加完所有曲线后将进度条设置为100%
                        progressBar.Position = 100;
                    }
                } 

 

以上是关于C#中ZedGraph控件怎么没有myPane.chart.Fill?的主要内容,如果未能解决你的问题,请参考以下文章

c# winform 折线图柱状图 饼图 控件都有哪些?

ZedGraph 官网下载和帮助文档ZedGraph.chm

ZedGraph 官网下载和帮助文档ZedGraph.chm

ZedGraph控件常用方法和属性总结

DevExpress的进度条控件ProgressBarControl的使用-以ZedGraph添加曲线进度为例

ZedGraph控件常用方法和属性总结