2022-12-27 17:33:33 +08:00

172 lines
3.4 KiB
C#

using System;
using System.Drawing;
namespace GoldPrinter
{
public class DrawRectangle : DrawBase
{
private BordersEdgeFlag _borderEdge;
private Color _backColor;
public BordersEdgeFlag BordersEdge
{
get
{
return this._borderEdge;
}
set
{
this._borderEdge = value;
}
}
public Color BackColor
{
get
{
return this._backColor;
}
set
{
this._backColor = value;
}
}
public DrawRectangle()
{
this._borderEdge = BordersEdgeFlag.FourEdge;
this._backColor = Color.White;
}
public override void Draw()
{
switch (this.BordersEdge)
{
case BordersEdgeFlag.Left:
this.DrawLeftLine();
break;
case BordersEdgeFlag.Right:
this.DrawRightLine();
break;
case BordersEdgeFlag.Top:
this.DrawTopLine();
break;
case BordersEdgeFlag.Bottom:
this.DrawBottomLine();
break;
case BordersEdgeFlag.DiagonalDown:
this.DrawDiagonalDownLine();
break;
case BordersEdgeFlag.DiagonalUp:
this.DrawDiagonalUpLine();
break;
default:
this.Draw(base.Graphics, base.Pen, base.Rectangle);
break;
}
if (this.BackColor != Color.White)
{
this.FillRectangle();
}
}
public void FillRectangle()
{
Pen pen = new Pen(this.BackColor);
base.Brush = pen.Brush;
this.DrawBackColor(base.Graphics, base.Brush, base.Rectangle);
}
public void DrawLeftLine()
{
this.DrawLeftLine(base.Graphics, base.Pen, base.Rectangle);
}
public void DrawRightLine()
{
this.DrawRightLine(base.Graphics, base.Pen, base.Rectangle);
}
public void DrawTopLine()
{
this.DrawTopLine(base.Graphics, base.Pen, base.Rectangle);
}
public void DrawBottomLine()
{
this.DrawBottomLine(base.Graphics, base.Pen, base.Rectangle);
}
public void DrawDiagonalDownLine()
{
this.DrawDiagonalDownLine(base.Graphics, base.Pen, base.Rectangle);
}
public void DrawDiagonalUpLine()
{
this.DrawDiagonalUpLine(base.Graphics, base.Pen, base.Rectangle);
}
protected void Draw(Graphics g, Pen pen, Rectangle rec)
{
g.DrawRectangle(pen, rec.X, rec.Y, rec.Width, rec.Height);
}
protected void DrawLeftLine(Graphics g, Pen pen, Rectangle rec)
{
int left = rec.Left;
int top = rec.Top;
int bottom = rec.Bottom;
g.DrawLine(pen, left, top, left, bottom);
}
protected void DrawRightLine(Graphics g, Pen pen, Rectangle rec)
{
int right = rec.Right;
int top = rec.Top;
int bottom = rec.Bottom;
g.DrawLine(pen, right, top, right, bottom);
}
protected void DrawTopLine(Graphics g, Pen pen, Rectangle rec)
{
int left = rec.Left;
int right = rec.Right;
int top = rec.Top;
g.DrawLine(pen, left, top, right, top);
}
protected void DrawBottomLine(Graphics g, Pen pen, Rectangle rec)
{
int left = rec.Left;
int right = rec.Right;
int bottom = rec.Bottom;
g.DrawLine(pen, left, bottom, right, bottom);
}
protected void DrawDiagonalDownLine(Graphics g, Pen pen, Rectangle rec)
{
int x = rec.X;
int y = rec.Y;
int right = rec.Right;
int bottom = rec.Bottom;
g.DrawLine(pen, x, y, right, bottom);
}
protected void DrawDiagonalUpLine(Graphics g, Pen pen, Rectangle rec)
{
int x = rec.X;
int bottom = rec.Bottom;
int right = rec.Right;
int top = rec.Top;
g.DrawLine(pen, x, bottom, right, top);
}
protected void DrawBackColor(Graphics g, Brush brush, Rectangle rec)
{
g.FillRectangle(brush, rec);
}
}
}