資源簡介
基于C#的交互式繪圖源代碼,希望對學習C#的同學能夠有所幫助!

代碼片段和文件信息
using?System;
using?System.Collections.Generic;
using?System.ComponentModel;
using?System.Data;
using?System.Drawing;
using?System.Linq;
using?System.Text;
using?System.Windows.Forms;
using?System.Drawing.Drawing2D;
namespace?ChA301_交互式繪圖_位圖_
{
public?enum?ObjType?{
Pointer
Earse
Pencil
Line
Rect
Circle
FillRect
FilleCircle
}
public?partial?class?FrmInteractDraw1?:?Form
{
private?Bitmap?_bitmap; //?目標圖形
private?Point?_ptStart; //?鼠標按下的位置
private?bool?_isMoving; //?鼠標是否按下
private?Pen?_pen; //?畫筆
private?Brush?_brush; //?畫刷
private?ObjType?_objType; //?繪圖對象類型
public?FrmInteractDraw1()
{
InitializeComponent();
cboPenstyle.SelectedIndex?=?0;
cboBrushType.SelectedIndex?=?0;
_bitmap?=?new?Bitmap(pbFill.Width?pbFill.Height);
_ptStart?=?new?Point(0?0);
_isMoving?=?false;
PenChanged(this?null);
BrushChanged(this?null);
_objType?=?ObjType.Pointer;
}
//?響應鼠標按下的消息
private?void?pbFill_MouseDown(object?sender?MouseEventArgs?e)
{
_ptStart?=?new?Point(e.X?e.Y);
_isMoving?=?true;
}
//?響應鼠標移動的消息
private?void?pbFill_MouseMove(object?sender?MouseEventArgs?e)
{
if?(_isMoving)
{
if?(_objType?==?ObjType.Earse?||?_objType?==?ObjType.Pencil)
{
//?得到目標圖形,以此實現改變目標圖形
pbFill.Image?=?_bitmap;
//?基于pbFill.Image建立圖形對象
using?(Graphics?g?=?Graphics.FromImage(pbFill.Image))
{
if?(_objType?==?ObjType.Earse)
{
g.FillEllipse(new?SolidBrush(Color.White)?e.X?-?8?e.Y?-?8?16?16);
}
else?if?(_objType?==?ObjType.Pencil)
{
Point?ptEnd?=?new?Point(e.X?e.Y);
g.DrawLine(_pen?_ptStart?ptEnd);
_ptStart?=?ptEnd;
}
}
}
else
{
//?得到目標圖形的副本,以此實現不動態改變_bitmap圖形
pbFill.Image?=?(Bitmap)_bitmap.Clone();
//?基于pbFill.Image建立圖形對象
using?(Graphics?g?=?Graphics.FromImage(pbFill.Image))
{
//?在圖形對象上繪鼠標移動時的軌跡點線
Pen?pen?=?new?Pen(Color.Red);
pen.Dashstyle?=?Dashstyle.Dot;
switch?(_objType)
{
case?ObjType.Line:
g.DrawLine(pen?_ptStart?new?Point(e.X?e.Y));
break;
case?ObjType.Rect:
case?ObjType.FillRect:
g.DrawRectangle(pen?new?Rectangle(_ptStart.X?_ptStart.Y?e.X?-?_ptStart.X?e.Y?-?_ptStart.Y));
break;
case?ObjType.Circle:
case?ObjType.FilleCircle:
g.DrawEllipse(pen?new?Rectangle(_ptStart.X?_ptStart.Y?e.X?-?_ptStart.X?e.Y?-?_ptStart.Y));
break;
}
}
}
}
}
//?響應鼠標抬起的消息
private?void?pbFill_MouseUp(object?sender?MouseEventArgs?e)
{
//?設置鼠標按下為false
_isMoving?=?false;
//?得到目標圖形,以此實現改變目標圖形
pbFill.Image?=?_bitmap;
//?基于pbFill.Image建立圖形對象
Rectangle?rect;
using?(Graphics?g?=?Graphics.FromImage(pbFill.Image))
{
//?使用用戶定義的筆和刷子,在圖形對象上繪目標圖形
switch?(_objType)
{
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2012-11-30?12:16??ChA3_交互式繪圖\
?????目錄???????????0??2012-11-30?12:16??ChA3_交互式繪圖\Backup\
?????目錄???????????0??2012-11-30?12:16??ChA3_交互式繪圖\Backup\ChA301_交互式繪圖[位圖]\
?????文件????????3863??2011-04-24?21:29??ChA3_交互式繪圖\Backup\ChA301_交互式繪圖[位圖]\ChA301_交互式繪圖[位圖].csproj
?????文件????????6567??2011-04-25?08:07??ChA3_交互式繪圖\Backup\ChA301_交互式繪圖[位圖]\FrmInteractDraw1.cs
?????文件???????17781??2011-04-24?21:27??ChA3_交互式繪圖\Backup\ChA301_交互式繪圖[位圖]\FrmInteractDraw1.designer.cs
?????文件???????11066??2011-04-24?21:23??ChA3_交互式繪圖\Backup\ChA301_交互式繪圖[位圖]\FrmInteractDraw1.resx
?????文件?????????444??2011-04-24?21:27??ChA3_交互式繪圖\Backup\ChA301_交互式繪圖[位圖]\Program.cs
?????目錄???????????0??2012-11-30?12:16??ChA3_交互式繪圖\Backup\ChA301_交互式繪圖[位圖]\Properties\
?????文件????????1416??2011-04-24?11:06??ChA3_交互式繪圖\Backup\ChA301_交互式繪圖[位圖]\Properties\AssemblyInfo.cs
?????文件????????2884??2011-04-24?21:23??ChA3_交互式繪圖\Backup\ChA301_交互式繪圖[位圖]\Properties\Resources.Designer.cs
?????文件????????5612??2011-04-24?11:06??ChA3_交互式繪圖\Backup\ChA301_交互式繪圖[位圖]\Properties\Resources.resx
?????文件????????1128??2011-04-24?21:23??ChA3_交互式繪圖\Backup\ChA301_交互式繪圖[位圖]\Properties\Settings.Designer.cs
?????文件?????????249??2011-04-24?11:06??ChA3_交互式繪圖\Backup\ChA301_交互式繪圖[位圖]\Properties\Settings.settings
?????目錄???????????0??2012-11-30?12:16??ChA3_交互式繪圖\Backup\ChA302_交互式繪圖[矢量]\
?????文件????????1818??2011-04-24?21:28??ChA3_交互式繪圖\Backup\ChA302_交互式繪圖[矢量]\BrushProp.cs
?????文件????????4092??2011-04-24?21:30??ChA3_交互式繪圖\Backup\ChA302_交互式繪圖[矢量]\ChA302_交互式繪圖[矢量].csproj
?????文件???????10013??2011-04-25?17:08??ChA3_交互式繪圖\Backup\ChA302_交互式繪圖[矢量]\FrmInteractDraw2.cs
?????文件???????19605??2011-04-25?17:03??ChA3_交互式繪圖\Backup\ChA302_交互式繪圖[矢量]\FrmInteractDraw2.designer.cs
?????文件???????11066??2011-04-25?17:03??ChA3_交互式繪圖\Backup\ChA302_交互式繪圖[矢量]\FrmInteractDraw2.resx
?????文件????????1250??2011-04-25?14:41??ChA3_交互式繪圖\Backup\ChA302_交互式繪圖[矢量]\me
?????文件????????1546??2011-04-24?21:28??ChA3_交互式繪圖\Backup\ChA302_交互式繪圖[矢量]\me
?????文件????????1959??2011-04-24?21:28??ChA3_交互式繪圖\Backup\ChA302_交互式繪圖[矢量]\me
?????文件?????????224??2011-04-24?21:28??ChA3_交互式繪圖\Backup\ChA302_交互式繪圖[矢量]\MyGraph.cs
?????文件????????1501??2011-04-24?21:28??ChA3_交互式繪圖\Backup\ChA302_交互式繪圖[矢量]\PenProp.cs
?????文件?????????444??2011-04-24?21:30??ChA3_交互式繪圖\Backup\ChA302_交互式繪圖[矢量]\Program.cs
?????目錄???????????0??2012-11-30?12:16??ChA3_交互式繪圖\Backup\ChA302_交互式繪圖[矢量]\Properties\
?????文件????????1416??2011-04-24?11:07??ChA3_交互式繪圖\Backup\ChA302_交互式繪圖[矢量]\Properties\AssemblyInfo.cs
?????文件????????2884??2011-04-24?21:28??ChA3_交互式繪圖\Backup\ChA302_交互式繪圖[矢量]\Properties\Resources.Designer.cs
?????文件????????5612??2011-04-24?11:07??ChA3_交互式繪圖\Backup\ChA302_交互式繪圖[矢量]\Properties\Resources.resx
?????文件????????1128??2011-04-24?21:28??ChA3_交互式繪圖\Backup\ChA302_交互式繪圖[矢量]\Properties\Settings.Designer.cs
............此處省略450個文件信息
- 上一篇:c#編寫的設備管理系統
- 下一篇:WPF 文件管理系統
評論
共有 條評論