.NET 的绘图控件ZedGraph

该控件来自于CodeProject

http://www.codeproject.com/KB/graphics/zedgraph.aspx

我大多的.NET程序的绘图程序都用的是这个控件。下面是这个控件的文档翻译及其基本使用方法。

A flexible charting library for .NET   By JChampion

正在寻找利用C#画二维线型图像的方法吗?这个就是高度可配置的绘图类库,当然,他也是非常容易用的。 

 

Introduction

ZedGraph是一个类库,为Windows Forms 设计的用户控件,该控件可以通过专业的数据资料创建2D线、Bar和Pie图像。该类库提供高度的灵活性——几乎每一个图像的部分都能由用户修改。于此同时,通过为所有图像的属性提供缺省值使类库的用法保持简单。类库中包括选择合适的刻度因数范围和基于被显示值的的数据范围的步长值的代码。此外,ZedGraph 兼容于.NET 2.0和VS.NET 2005.

ZeGraph 是作为开源开发工程在SourceForge被维护的。该网站包括该项目的wiki、文档、更新历史和所有的发行版本。

Wiki上含有一套简单的图像实例由公开的代码完成(许多的例子包括C#和VB代码)。

Background

    我们可以寻找到很多的绘图类库,但是似乎没有一个能够满足我的需要。我发现MSCHART太诡异了,许多其他的选项都不具有可配置性但我需要达到一种精致的外观。当然,许多商业开发包能够做这种花招,但是我需要某种免费的东东。由此,ZedGraph产生了!

    这个类库将可以产生各种线型、条形、图形分割统计图表在Form上,考虑到位置矩形和一些数据点(翻译的有点诡异,没太看明白)。ZedGraph处理二维线形或散点图形,所彩的百分数条形图形,误差条形图像,日本烛台图形和图形分割统计图表——他现在还不能处理2.5D或3D表面图形。可以通过坐标轴标签、标题、图例标签、文字标签、箭头、镜像等对象修饰图像。

ZedGraphWiki online class documentation 提供了大量的有用的信息,针对其提供更多的信息,ZedGraph 有大量的选项没有在这个入门文档中提供。

Using ZedGraph as a UserControl 

将ZedGraph作为一个控件可由Visual Studio.NET的控件工具箱中获取。 要创建ZedGraph,首先要打开Visual Studio.NET,创建一个新的Forms项目。打开form设计器使其出现在当前窗口,如下图

.NET 的绘图控件ZedGraph

右击工具箱->选择项

.NET 的绘图控件ZedGraph

点击浏览定位到 zedgraph.dll文件,并添加。

.NET 的绘图控件ZedGraph

一旦添加了此文件,你会看到ZedGraphControl选项在工具箱中。如下图

.NET 的绘图控件ZedGraph

  1. 在项目主菜单->选择添加引用->添加ZedGraph.dll,然后点击OK,重复这个过程添ZedGraph.Web.dll,这将包括所有的ZedGraph功能在你的工程中。
  2. 添加using ZedGraph;语句到你的主Form代码中
  3. 在Form设计器中,从工具箱中拖拽ZedGraphControl到From上,按照你的意愿修改其大小和位置。你现在在你的Form中就有了一个ZedGraph控件。如下图.NET 的绘图控件ZedGraph
  4. 所有的ZedGraph功能都可以通过ZedGraphControl.MasterPane属性来访问,提供ZedGraphControl.GraphPane来引用第一个GraphPane在主MasterPane列表中。(下面会解释这句话的意思)。
  5. 在Form设计器中双击Form(不是ZedGraphControl)。这将会放置一个Form1_Load()模板在你的代码文件中。
  6. 在Form设计器中,激活Form后定位到属性中的事件如图,双击Resizes事件,这时Form1_Resize相应的函数模板将出现在在代码文件中.NET 的绘图控件ZedGraph
  7. 修改Form1_Load()和Form1_Resize()方法,按照下面的代码添加CreateGraph() and SetSize() 方法。(这里假定你的控件名称为zedGraphControl1)
  8. //  form 'Resize'  的事件相应方法

    private void Form1_Resize( object sender, EventArgs e )

         SetSize();

    //SetSize() 是独立于Resize()的,所以我们能够独立的调用他通过Form1_Load() 方法。

    //这将保留10像素环绕控件的外部边缘,定制这些使之适合你的需要。
    private void SetSize()

         zedGraphControl1.Location = new Point( 10, 10 ); 

         //保留一个小的页面空白在控件的周围
         zedGraphControl1.Size = new Size( ClientRectangle.Width - 20, 
                                                       

相关文章:

  • 2022-12-23
  • 2021-09-11
  • 2021-04-09
  • 2022-12-23
  • 2022-01-20
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-05-14
  • 2022-02-10
  • 2021-08-18
  • 2021-11-07
相关资源
相似解决方案