添加10像素和15像素画笔大小按钮,并将CreateBrushSizeImage方法迁移到Setting.cs
This commit is contained in:
@@ -159,21 +159,22 @@
|
||||
13. 当选中区域时,鼠标可以移动区域,用于调整区域位置。
|
||||
14. 当选中区域时,右击鼠标,退出选中状态,转为就绪状态
|
||||
15. 当就绪状态时,工具栏显示绘制温差图按钮(btnDrawTempDiff)
|
||||
16. 当绘制温差图按钮按下时,进入绘制温差图状态
|
||||
16. 当绘制温差图按钮按下时,进入绘制温差图状态,显示添加和删除温差图例按钮(btnAddTempDiff、btnDeleteTempDiff),显示温差图例列表(dataGridViewTempDiff)
|
||||
17. 当绘制温差图状态时,右击鼠标进入就绪状态
|
||||
|
||||
#### 配置状态说明
|
||||
1. 初始状态/就绪状态:
|
||||
- 显示btnDrawRegion和btnDrawTempDiff按钮
|
||||
- 隐藏btnSelectColor、btnDeleteRegion按钮、dataGridViewTempDiff
|
||||
- 隐藏btnSelectColor、btnDeleteRegion按钮、dataGridViewTempDiff、btnAddTempDiff、btnDeleteTempDiff、btnBrushSize1、btnBrushSize3、btnBrushSize5、btnBrushSize10、btnBrushSize15
|
||||
2. 选中区域状态:
|
||||
- 显示btnDeleteRegion和btnSelectColor按钮
|
||||
- 隐藏btnDrawRegion和btnDrawTempDiff按钮、dataGridViewTempDiff
|
||||
- 隐藏btnDrawRegion和btnDrawTempDiff按钮、dataGridViewTempDiff、btnAddTempDiff、btnDeleteTempDiff、btnBrushSize1、btnBrushSize3、btnBrushSize5、btnBrushSize10、btnBrushSize15
|
||||
3. 绘制状态:
|
||||
- 显示btnSelectColor按钮
|
||||
- 显示btnDrawRegion按钮
|
||||
- 隐藏btnDeleteRegion按钮
|
||||
- 隐藏btnDrawTempDiff按钮、dataGridViewTempDiff
|
||||
- 隐藏btnDrawTempDiff按钮、dataGridViewTempDiff、btnAddTempDiff、btnDeleteTempDiff、btnBrushSize1、btnBrushSize3、btnBrushSize5、btnBrushSize10、btnBrushSize15
|
||||
4. 绘制温差图状态:
|
||||
- 显示btnDrawTempDiff按钮,显示dataGridViewTempDiff
|
||||
- 显示btnDrawTempDiff按钮,显示dataGridViewTempDiff、btnAddTempDiff、btnDeleteTempDiff
|
||||
- 当选定温差图例后,显示btnBrushSize1、btnBrushSize3、btnBrushSize5、btnBrushSize10、btnBrushSize15
|
||||
- 隐藏btnSelectColor、btnDeleteRegion、btnDrawRegion按钮
|
||||
@@ -163,6 +163,30 @@ namespace JoyD.Windows.CS
|
||||
this.btnBrushSize5.ToolTipText = "选择5像素画笔";
|
||||
this.btnBrushSize5.Click += new System.EventHandler(this.BtnBrushSize5_Click);
|
||||
//
|
||||
// btnBrushSize10
|
||||
//
|
||||
this.btnBrushSize10 = new System.Windows.Forms.ToolStripButton();
|
||||
this.btnBrushSize10.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
||||
this.btnBrushSize10.Image = this.CreateBrushSizeImage(10, System.Drawing.Color.Purple);
|
||||
this.btnBrushSize10.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||
this.btnBrushSize10.Name = "btnBrushSize10";
|
||||
this.btnBrushSize10.Size = new System.Drawing.Size(23, 22);
|
||||
this.btnBrushSize10.Text = "画笔大小10px";
|
||||
this.btnBrushSize10.ToolTipText = "选择10像素画笔";
|
||||
this.btnBrushSize10.Click += new System.EventHandler(this.BtnBrushSize10_Click);
|
||||
//
|
||||
// btnBrushSize15
|
||||
//
|
||||
this.btnBrushSize15 = new System.Windows.Forms.ToolStripButton();
|
||||
this.btnBrushSize15.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
||||
this.btnBrushSize15.Image = this.CreateBrushSizeImage(15, System.Drawing.Color.Orange);
|
||||
this.btnBrushSize15.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||
this.btnBrushSize15.Name = "btnBrushSize15";
|
||||
this.btnBrushSize15.Size = new System.Drawing.Size(23, 22);
|
||||
this.btnBrushSize15.Text = "画笔大小15px";
|
||||
this.btnBrushSize15.ToolTipText = "选择15像素画笔";
|
||||
this.btnBrushSize15.Click += new System.EventHandler(this.BtnBrushSize15_Click);
|
||||
//
|
||||
// toolStrip
|
||||
//
|
||||
this.toolStrip.AllowDrop = true;
|
||||
@@ -178,7 +202,9 @@ namespace JoyD.Windows.CS
|
||||
new System.Windows.Forms.ToolStripSeparator(),
|
||||
this.btnBrushSize1,
|
||||
this.btnBrushSize3,
|
||||
this.btnBrushSize5});
|
||||
this.btnBrushSize5,
|
||||
this.btnBrushSize10,
|
||||
this.btnBrushSize15});
|
||||
this.toolStrip.Location = new System.Drawing.Point(3, 0);
|
||||
this.toolStrip.Name = "toolStrip";
|
||||
this.toolStrip.Size = new System.Drawing.Size(104, 25);
|
||||
@@ -291,30 +317,8 @@ namespace JoyD.Windows.CS
|
||||
private System.Windows.Forms.ToolStripButton btnBrushSize1;
|
||||
private System.Windows.Forms.ToolStripButton btnBrushSize3;
|
||||
private System.Windows.Forms.ToolStripButton btnBrushSize5;
|
||||
private System.Windows.Forms.ToolStripButton btnBrushSize10;
|
||||
private System.Windows.Forms.ToolStripButton btnBrushSize15;
|
||||
private System.Windows.Forms.DataGridView dataGridViewTempDiff;
|
||||
|
||||
/// <summary>
|
||||
/// 创建表示画笔大小的图标
|
||||
/// </summary>
|
||||
/// <param name="size">画笔大小(像素)</param>
|
||||
/// <param name="color">画笔颜色</param>
|
||||
/// <returns>表示画笔大小的图标</returns>
|
||||
private System.Drawing.Bitmap CreateBrushSizeImage(int size, System.Drawing.Color color)
|
||||
{
|
||||
System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(20, 20);
|
||||
using (System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bmp))
|
||||
{
|
||||
// 填充背景为透明色
|
||||
g.Clear(System.Drawing.Color.Magenta);
|
||||
// 计算正方形位置,使其居中
|
||||
int x = (20 - size) / 2;
|
||||
int y = (20 - size) / 2;
|
||||
// 绘制正方形表示画笔大小
|
||||
g.FillRectangle(new System.Drawing.SolidBrush(color), x, y, size, size);
|
||||
// 添加边框
|
||||
g.DrawRectangle(new System.Drawing.Pen(System.Drawing.Color.Black), x, y, size - 1, size - 1);
|
||||
}
|
||||
return bmp;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -49,6 +49,9 @@ namespace JoyD.Windows.CS
|
||||
private bool _isMoving = false;
|
||||
private Point _startMovePoint;
|
||||
|
||||
// 画笔大小相关变量
|
||||
private int _currentBrushSize = 1; // 默认画笔大小为1像素
|
||||
|
||||
public Setting()
|
||||
{
|
||||
InitializeComponent();
|
||||
@@ -85,6 +88,121 @@ namespace JoyD.Windows.CS
|
||||
dataGridViewTempDiff.Visible = false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 1像素画笔大小按钮点击事件
|
||||
/// </summary>
|
||||
private void BtnBrushSize1_Click(object sender, EventArgs e)
|
||||
{
|
||||
_currentBrushSize = 1;
|
||||
// 更新按钮选中状态
|
||||
UpdateBrushSizeButtonSelection(1);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 3像素画笔大小按钮点击事件
|
||||
/// </summary>
|
||||
private void BtnBrushSize3_Click(object sender, EventArgs e)
|
||||
{
|
||||
_currentBrushSize = 3;
|
||||
// 更新按钮选中状态
|
||||
UpdateBrushSizeButtonSelection(3);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 5像素画笔大小按钮点击事件
|
||||
/// </summary>
|
||||
private void BtnBrushSize5_Click(object sender, EventArgs e)
|
||||
{
|
||||
_currentBrushSize = 5;
|
||||
// 更新按钮选中状态
|
||||
UpdateBrushSizeButtonSelection(5);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 10像素画笔大小按钮点击事件
|
||||
/// </summary>
|
||||
private void BtnBrushSize10_Click(object sender, EventArgs e)
|
||||
{
|
||||
_currentBrushSize = 10;
|
||||
// 更新按钮选中状态
|
||||
UpdateBrushSizeButtonSelection(10);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 15像素画笔大小按钮点击事件
|
||||
/// </summary>
|
||||
private void BtnBrushSize15_Click(object sender, EventArgs e)
|
||||
{
|
||||
_currentBrushSize = 15;
|
||||
// 更新按钮选中状态
|
||||
UpdateBrushSizeButtonSelection(15);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 创建表示画笔大小的图标
|
||||
/// </summary>
|
||||
/// <param name="size">画笔大小(像素)</param>
|
||||
/// <param name="color">画笔颜色</param>
|
||||
/// <returns>表示画笔大小的图标</returns>
|
||||
private System.Drawing.Bitmap CreateBrushSizeImage(int size, System.Drawing.Color color)
|
||||
{
|
||||
System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(20, 20);
|
||||
using (System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bmp))
|
||||
{
|
||||
// 填充背景为透明色
|
||||
g.Clear(System.Drawing.Color.Magenta);
|
||||
// 计算正方形位置,使其居中
|
||||
int x = (20 - size) / 2;
|
||||
int y = (20 - size) / 2;
|
||||
// 绘制正方形表示画笔大小
|
||||
g.FillRectangle(new System.Drawing.SolidBrush(color), x, y, size, size);
|
||||
// 添加边框
|
||||
g.DrawRectangle(new System.Drawing.Pen(System.Drawing.Color.Black), x, y, size - 1, size - 1);
|
||||
}
|
||||
return bmp;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 更新画笔大小按钮的选中状态
|
||||
/// </summary>
|
||||
/// <param name="selectedSize">当前选中的画笔大小</param>
|
||||
private void UpdateBrushSizeButtonSelection(int selectedSize)
|
||||
{
|
||||
try
|
||||
{
|
||||
// 清除所有按钮的选中状态
|
||||
btnBrushSize1.Checked = false;
|
||||
btnBrushSize3.Checked = false;
|
||||
btnBrushSize5.Checked = false;
|
||||
btnBrushSize10.Checked = false;
|
||||
btnBrushSize15.Checked = false;
|
||||
|
||||
// 设置当前选中按钮的选中状态
|
||||
switch (selectedSize)
|
||||
{
|
||||
case 1:
|
||||
btnBrushSize1.Checked = true;
|
||||
break;
|
||||
case 3:
|
||||
btnBrushSize3.Checked = true;
|
||||
break;
|
||||
case 5:
|
||||
btnBrushSize5.Checked = true;
|
||||
break;
|
||||
case 10:
|
||||
btnBrushSize10.Checked = true;
|
||||
break;
|
||||
case 15:
|
||||
btnBrushSize15.Checked = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine("更新画笔大小按钮状态失败: " + ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 鼠标按下事件 - 处理右击退出绘制状态、左击开始绘制矩形和开始调整区域大小
|
||||
/// </summary>
|
||||
@@ -176,9 +294,8 @@ namespace JoyD.Windows.CS
|
||||
// 检查是否是温差值列
|
||||
if (dataGridViewTempDiff.CurrentCell.ColumnIndex == dataGridViewTempDiff.Columns["tempDiffValue"].Index)
|
||||
{
|
||||
// 获取TextBox编辑控件
|
||||
TextBox tb = e.Control as TextBox;
|
||||
if (tb != null)
|
||||
// 获取TextBox编辑控件 - 使用模式匹配
|
||||
if (e.Control is TextBox tb)
|
||||
{
|
||||
// 清除之前的处理程序
|
||||
tb.KeyPress -= new KeyPressEventHandler(TempDiffValueTextBox_KeyPress);
|
||||
@@ -906,8 +1023,8 @@ namespace JoyD.Windows.CS
|
||||
// 设置高质量绘图
|
||||
g.SmoothingMode = SmoothingMode.AntiAlias;
|
||||
|
||||
// 使用每个区域自己的颜色绘制矩形
|
||||
g.DrawRectangle(new Pen(region.Color, 2), region.ImageRectangle);
|
||||
// 使用每个区域自己的颜色和当前选择的画笔大小绘制矩形
|
||||
g.DrawRectangle(new Pen(region.Color, _currentBrushSize), region.ImageRectangle);
|
||||
|
||||
// 绘制区域序号
|
||||
using (Font font = new Font("Arial", 12, FontStyle.Bold))
|
||||
|
||||
Reference in New Issue
Block a user