|
|
Posted on
2004-12-08 12:58
冷风.net
阅读( 435)
评论()
收藏
举报
//*************************************************************************************************
//完成日期: 2004-11-5
//作者: 何利民
//程序功能: 矩形類
//*************************************************************************************************
using System;
using System.Drawing;
using System.Drawing.Text;
using System.Drawing.Imaging;
namespace ImagesSpaceName
  {
 /**//// <summary>
/// 矩形類
/// </summary>
public class RectangleClass : ImageArea
 {
 定義類變量#region 定義類變量
protected int _rectangleWidth = 100; //矩形寬
protected int _rectangleHeight = 100; //矩形高
protected string _rectangleBgColor = "#0000ff"; //矩形填充色
protected string _rectangleBorderColor = "#ffffff"; //矩形邊框色
protected int _rectangleBorderSize = 1; //矩形邊框大小
protected string _rectangleTitle = null; //矩形標題
protected string _rectangleTitleColor = "#ff0000"; //矩形標題顏色
protected int _rectangleTitleSize = 12; //矩形標題大小
protected string _rectangleTitleFamily = "新細明體"; //矩形標題字體名稱
protected bool _showRectangleTitle = true; //是否顯示標題
protected ImagesSpaceName.Valign _rectangleTitleValign = ImagesSpaceName.Valign.middle; //矩形標題對齊;
#endregion
 類初使化構造函數#region 類初使化構造函數
public RectangleClass()
 {
}
#endregion
 定義矩形屬性#region 定義矩形屬性
 /**//// <summary>
/// 獲得或設置矩形寬
/// </summary>
public virtual int RectangleWidth
 {
 get {return _rectangleWidth;}
 set {_rectangleWidth = value;}
}
 /**//// <summary>
/// 獲得或設置矩形高
/// </summary>
public virtual int RectangleHeight
 {
 get {return _rectangleHeight;}
 set {_rectangleHeight = value;}
}
 /**//// <summary>
/// 獲得或設置矩形填充色
/// </summary>
public virtual string RectangleBgColor
 {
 get {return _rectangleBgColor;}
 set {_rectangleBgColor = value;}
}
 /**//// <summary>
/// 獲得或設置矩形邊框色
/// </summary>
public virtual string RectangleBorderColor
 {
 get {return _rectangleBorderColor;}
 set {_rectangleBorderColor = value;}
}
 /**//// <summary>
/// 獲得或設置矩形邊框大小
/// </summary>
public virtual int RectangleBorderSize
 {
 get {return _rectangleBorderSize;}
 set {_rectangleBorderSize = value;}
}
 /**//// <summary>
/// 獲得或設置矩形標題
/// </summary>
public virtual string RectangleTitle
 {
 get {return _rectangleTitle;}
 set {_rectangleTitle = value;}
}
 /**//// <summary>
/// 矩形標題字體顏色
/// </summary>
public virtual string RectangleTitleColor
 {
 get {return _rectangleTitleColor;}
 set {_rectangleTitleColor = value;}
}
 /**//// <summary>
/// 矩形標題字體大小
/// </summary>
public virtual int RectangleTitleSize
 {
 get {return _rectangleTitleSize;}
 set {_rectangleTitleSize = value;}
}
 /**//// <summary>
/// 矩形標題字體名稱
/// </summary>
public virtual string RectangleTitleFamily
 {
 get {return _rectangleTitleFamily;}
 set {_rectangleTitleFamily = value;}
}
 /**//// <summary>
/// 獲得或設置矩形標題的垂直對齊方式
/// </summary>
public virtual ImagesSpaceName.Valign RectangleTitleValign
 {
 get {return _rectangleTitleValign;}
 set {_rectangleTitleValign = value;}
}
 /**//// <summary>
/// 顯示矩形標題
/// </summary>
public virtual bool ShowRectangleTitle
 {
 get {return _showRectangleTitle;}
 set {_showRectangleTitle = value;}
}
#endregion
 繪制矩形#region 繪制矩形
public virtual System.IO.Stream DrawingRectangle(int ColorId)
 {
if(ShowRectangleTitle) RectangleHeight=RectangleHeight+20;
Bitmap bitmap = new Bitmap(RectangleWidth,RectangleHeight);
Graphics graphics = Graphics.FromImage(bitmap);
graphics.Clear(Color.White);
Brush brush = new SolidBrush(ColorTranslator.FromHtml(RectangleBorderColor));
Pen pen = new Pen(brush,RectangleBorderSize);
int iTop = 0;
if(RectangleTitleValign==ImagesSpaceName.Valign.top) iTop = 20;
graphics.DrawRectangle(pen,0,iTop,RectangleWidth,RectangleHeight);
Color color;
if(this.RectangleBgColor==null)
 {
color = GetColor(ColorId);
}
else
color = ColorTranslator.FromHtml(this.RectangleBgColor);
graphics.FillRectangle(new SolidBrush(color),0,iTop,RectangleWidth,RectangleHeight);
if(ShowRectangleTitle)
 {
Font font = new Font(RectangleTitleFamily,RectangleTitleSize);
graphics.TextRenderingHint = TextRenderingHint.AntiAliasGridFit;
SizeF sizeF = graphics.MeasureString(RectangleTitle,font);
int iWidth = (RectangleWidth-(int)sizeF.Width)/2;
int iHeight = (RectangleHeight-(int)sizeF.Height)/2;
if(RectangleTitleValign==ImagesSpaceName.Valign.top) iHeight = 0;
graphics.DrawString(RectangleTitle,font,new SolidBrush(ColorTranslator.FromHtml(RectangleTitleColor)),iWidth,iHeight);
}
System.IO.Stream streamimg = new System.IO.MemoryStream();
bitmap.Save(streamimg,ImageFormat.Jpeg);
bitmap.Dispose();
graphics.Dispose();
return streamimg;
}
#endregion
}
}
|