html5中文学习网

您的位置: 首页 > 网络编程 > ASP.NET » 正文

Asp.net中使用GDI+形_.NET教程_编程技术

[ ] 已经帮助:人解决问题
asp.net

Asp.net中使用GDI+形

GDI+ ――下一代形接口 所有的形用界面(GUI)用程序都硬件(示器,打印,描)行交互,可以表示可的。不用程序不直接和之行通信,否必每台分 不同的用接口代。了避免重的工作,我可以在用程序和之使用第三件,此件和送送到的,以及送到程序的。而件就是GDI+。GDI+是.NET Framework中形行交互的入口。GDI+是一C++,位于一名Gdiplus.dll的中。Gdiplus.dll是Windows XP和Windows Server 2003操作系中一内置件。好了,性的西在就不多唇舌了,下面我用GDI+在Web Form中一幅。

像似的想必大家都,然不,把代出有趣的可以一!

namespace Sky_MsdnDataGrid

{

     using System;

     using System.Collections;

     using System.ComponentModel;

     using System.Data;

     using System.Drawing;

     using System.Drawing.Imaging;

     using System.Web;

     using System.Web.SessionState;

     using System.Web.UI;

     using System.Web.UI.WebControls;

     using System.Web.UI.HtmlControls;

 

     /// <summary>

     /// AspxChart 的摘要描述。

     /// </summary>

     public class AspxChart : System.Web.UI.Page

     {

           private   Bitmap bitmap;

           private Graphics graphics;

           private    int[] arrValues;

           private string[] arrValueNames;

 

           private void Page_Load(object sender, System.EventArgs e)

           {

                arrValues     = new    int[6];

                arrValueNames = new string[6];

               

                arrValues[0]     =    100;

                arrValues[1]     =    135;

                arrValues[2]     =    115;

                arrValues[3]     =    125;

                arrValues[4]     =     75;

                arrValues[5]     =    120;

 

                arrValueNames[0] = "一月";

                arrValueNames[1] = "二月";

                arrValueNames[2] = "三月";

                arrValueNames[3] = "四月";

                arrValueNames[4] = "五月";

                arrValueNames[5] = "六月";

 

                this.Init_Bitmap();

                this.Draw_Rectangle();

                this.Draw_Pie();

               

                // 的像以 Gif 的格式保存到前面的出流中

                bitmap.Save(this.Response.OutputStream,ImageFormat.Gif);

           }

          

           /// <summary>

           /// 即要被的位(可想象一)行初始作

           /// </summary>

           private void Init_Bitmap()

           {

                bitmap = new Bitmap(400,200);

                graphics = Graphics.FromImage(bitmap);

                graphics.Clear(Color.White);

 

                graphics.DrawString("X 公司上半年售情",new Font("新明体",16,FontStyle.Underline),Brushes.Black,new PointF(5,5));

           }

 

           #region Web Form 工具生的程式

           override protected void OnInit(EventArgs e)

           {

                //

                // CODEGEN: 此 ASP.NET Web Form 工具所需的呼叫。

                //

                InitializeComponent();

                base.OnInit(e);

           }

          

           /// <summary>

           /// 此工具支援所必的方法 - 勿使用程式器修改

           /// 方法的容。

           /// </summary>

           private void InitializeComponent()

           {   

                this.Load += new System.EventHandler(this.Page_Load);

 

           }

           #endregion

          

           /// <summary>

           /// 在上面矩形

           /// </summary>

           private void Draw_Rectangle()

           {

                int i;

                PointF symbolLeg = new PointF(335,20);

                PointF   descLeg = new PointF(360,16);

               

                for (i = 0; i < arrValueNames.Length; i++)

                {

                     graphics.FillRectangle(new SolidBrush(GetColor(i)),symbolLeg.X,symbolLeg.Y,20,10);

                     graphics.DrawRectangle(Pens.Black,symbolLeg.X,symbolLeg.Y,20,10);

                     graphics.DrawString(arrValueNames[i].ToString(),new Font("新明体",8),Brushes.Black,descLeg);

 

                      symbolLeg.Y += 15;

                     descLeg.Y   += 16;

                }

 

                for (i = 0; i < arrValues.Length; i++)

                {

                     graphics.FillRectangle(new SolidBrush(GetColor(i)),(i*35) + 15,200 - arrValues[i],20,arrValues[i]);

                     graphics.DrawRectangle(Pens.Black,(i*35) + 15,200 - arrValues[i],20,arrValues[i]);

                }

           }

          

           /// <summary>

           /// 在上面形

           /// </summary>

           private void Draw_Pie()

           {

                int i;

                // currentangle代表前角度 totalangle代表最大角度 totalvalues代表最大的售

                float sglCurrentAngle = 0,sglTotalAngle = 0,sglTotalValues = 0;

               

                // 算最大售

                for (i = 0; i < arrValues.Length; i++)

                     sglTotalValues += arrValues[i];

 

                for (i = 0; i < arrValues.Length; i++)

                {

                     // 月角度值  : 月售   / 最大售       * 360

                     sglCurrentAngle = arrValues[i] / sglTotalValues * 360;

 

                     graphics.FillPie(new SolidBrush(GetColor(i)),240,95,100,100,sglTotalAngle,sglCurrentAngle);

                     graphics.DrawPie(Pens.Black,240,95,100,100,sglTotalAngle,sglCurrentAngle);

 

                     sglTotalAngle += sglCurrentAngle;

                }

           }

 

           #region Helper Function

           private Color GetColor(int itemIndex)

           {

                Color color;

                switch(itemIndex)

                {

                     case 0:

                           color = Color.Blue;

                           break;

                     case 1:

                           color = Color.Red;

                           break;

                     case 2:

                           color = Color.Yellow;

                           break;

                     case 3:

                           color = Color.Purple;

                           break;

                     case 4:

                           color = Color.Orange;

                           break;

                     case 5:

                           color = Color.Brown;

                           break;

                     default:

                           color = Color.Blue;

                           break;

                }

                return color;

           }

           #endregion

     } }

qnrHTML5中文学习网 - HTML5先行者学习网
qnrHTML5中文学习网 - HTML5先行者学习网
(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助