?? block.cs
字號:
using System;
using System.Drawing;
namespace Employee
{
/// <summary>
/// Block 的摘要說明。
/// </summary>
public class Block
{
public Block()
{
//
// TODO: 在此處添加構造函數邏輯
//
}
public Block(int index, Point pt)
{
colorIndex = index;
ptPosition = pt;
}
public Block(int index, int x, int y)
{
colorIndex = index;
ptPosition.X = x;
ptPosition.Y = y;
}
private int colorIndex; // 顏色序號
private Point ptPosition; // 位置
private static int size = 20; // 方塊大小
private static int COLOR_CHANGE = 60;
private static Color[] clrDefine
= new Color[] {
Color.FromArgb(51, 204, 102), // 綠 Default color, or extend block color
Color.FromArgb(200, 200, 102), // 黃
Color.FromArgb(0, 143, 224), // 藍
Color.FromArgb(153, 153, 204), // 青
Color.FromArgb(204, 204, 204), // 灰
Color.FromArgb(232, 123, 20), // 橙
Color.FromArgb(220, 39, 75) // 紅 sample block color
}; // 顏色
public int ColorIndex
{
get
{
return colorIndex;
}
set
{
colorIndex = value;
}
}
public Point Position
{
get
{
return ptPosition;
}
set
{
ptPosition = value;
}
}
public void Draw(Graphics g, Point ptStart, bool clear)
{
if (clear)
{
g.FillRectangle(new SolidBrush(Color.White), ptStart.X + (ptPosition.X * size),
ptStart.Y + (ptPosition.Y * size), size, size);
}
else
{
g.FillRectangle(new SolidBrush(clrDefine[colorIndex]), ptStart.X + (ptPosition.X * size),
ptStart.Y + (ptPosition.Y * size), size, size);
g.DrawLine(new Pen(GetLightColor(colorIndex), 1), ptStart.X + (ptPosition.X * size), ptStart.Y + (ptPosition.Y * size), ptStart.X + (ptPosition.X * size) + size - 1, ptStart.Y + (ptPosition.Y * size));
g.DrawLine(new Pen(GetLightColor(colorIndex), 1), ptStart.X + (ptPosition.X * size), ptStart.Y + (ptPosition.Y * size), ptStart.X + (ptPosition.X * size), ptStart.Y + (ptPosition.Y * size) + size - 1);
g.DrawLine(new Pen(GetDarkColor(colorIndex), 1), ptStart.X + (ptPosition.X * size) + size - 1, ptStart.Y + (ptPosition.Y * size) + size - 1, ptStart.X + (ptPosition.X * size) + size - 1, ptStart.Y + (ptPosition.Y * size));
g.DrawLine(new Pen(GetDarkColor(colorIndex), 1), ptStart.X + (ptPosition.X * size) + size - 1, ptStart.Y + (ptPosition.Y * size) + size - 1, ptStart.X + (ptPosition.X * size), ptStart.Y + (ptPosition.Y * size) + size - 1);
//g.DrawRectangle(new Pen(Color.Black, 1), ptStart.X + (ptPosition.X * size),
// ptStart.Y + (ptPosition.Y * size), size-1, size-1);
}
}
public void Draw(Graphics g)
{
Draw(g, new Point(0, 0), false);
}
public static int Size
{
get
{
return size;
}
set
{
size = value;
}
}
public static Color GetColor(int index)
{
return clrDefine[index];
}
Color GetDarkColor(int index)
{
int r = clrDefine[index].R;
int g = clrDefine[index].G;
int b = clrDefine[index].B;
r = r-COLOR_CHANGE<0 ? 0 : r-COLOR_CHANGE;
g = g-COLOR_CHANGE<0 ? 0 : g-COLOR_CHANGE;
b = b-COLOR_CHANGE<0 ? 0 : b-COLOR_CHANGE;
Color c = Color.FromArgb(r, g, b);
return c;
}
Color GetLightColor(int index)
{
int r = clrDefine[index].R;
int g = clrDefine[index].G;
int b = clrDefine[index].B;
r = r+COLOR_CHANGE>255 ? 255 : r+COLOR_CHANGE;
g = g+COLOR_CHANGE>255 ? 255 : g+COLOR_CHANGE;
b = b+COLOR_CHANGE>255 ? 255 : b+COLOR_CHANGE;
Color c = Color.FromArgb(r, g, b);
return c;
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -