修复Setting.Designer.cs中btnEraseTempDiff按钮的初始化问题
This commit is contained in:
@@ -46,6 +46,7 @@ namespace JoyD.Windows.CS
|
|||||||
this.btnBrushSize10 = new System.Windows.Forms.ToolStripButton();
|
this.btnBrushSize10 = new System.Windows.Forms.ToolStripButton();
|
||||||
this.btnBrushSize15 = new System.Windows.Forms.ToolStripButton();
|
this.btnBrushSize15 = new System.Windows.Forms.ToolStripButton();
|
||||||
this.btnBrushSize25 = new System.Windows.Forms.ToolStripButton();
|
this.btnBrushSize25 = new System.Windows.Forms.ToolStripButton();
|
||||||
|
this.btnEraseTempDiff = new System.Windows.Forms.ToolStripButton();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer)).BeginInit();
|
((System.ComponentModel.ISupportInitialize)(this.splitContainer)).BeginInit();
|
||||||
this.splitContainer.Panel1.SuspendLayout();
|
this.splitContainer.Panel1.SuspendLayout();
|
||||||
this.splitContainer.Panel2.SuspendLayout();
|
this.splitContainer.Panel2.SuspendLayout();
|
||||||
@@ -147,12 +148,14 @@ namespace JoyD.Windows.CS
|
|||||||
this.btnDrawTempDiff,
|
this.btnDrawTempDiff,
|
||||||
this.btnAddTempDiff,
|
this.btnAddTempDiff,
|
||||||
this.btnDeleteTempDiff,
|
this.btnDeleteTempDiff,
|
||||||
|
new System.Windows.Forms.ToolStripSeparator(),
|
||||||
this.btnBrushSize1,
|
this.btnBrushSize1,
|
||||||
this.btnBrushSize3,
|
this.btnBrushSize3,
|
||||||
this.btnBrushSize5,
|
this.btnBrushSize5,
|
||||||
this.btnBrushSize10,
|
this.btnBrushSize10,
|
||||||
this.btnBrushSize15,
|
this.btnBrushSize15,
|
||||||
this.btnBrushSize25});
|
this.btnBrushSize25,
|
||||||
|
this.btnEraseTempDiff});
|
||||||
this.toolStrip.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.Flow;
|
this.toolStrip.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.Flow;
|
||||||
this.toolStrip.Location = new System.Drawing.Point(3, 0);
|
this.toolStrip.Location = new System.Drawing.Point(3, 0);
|
||||||
this.toolStrip.MaximumSize = new System.Drawing.Size(0, 100);
|
this.toolStrip.MaximumSize = new System.Drawing.Size(0, 100);
|
||||||
@@ -284,6 +287,16 @@ namespace JoyD.Windows.CS
|
|||||||
this.btnBrushSize25.ToolTipText = "选择25像素画笔";
|
this.btnBrushSize25.ToolTipText = "选择25像素画笔";
|
||||||
this.btnBrushSize25.Click += new System.EventHandler(this.BtnBrushSize25_Click);
|
this.btnBrushSize25.Click += new System.EventHandler(this.BtnBrushSize25_Click);
|
||||||
//
|
//
|
||||||
|
// btnEraseTempDiff
|
||||||
|
//
|
||||||
|
this.btnEraseTempDiff.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
||||||
|
this.btnEraseTempDiff.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||||
|
this.btnEraseTempDiff.Name = "btnEraseTempDiff";
|
||||||
|
this.btnEraseTempDiff.Size = new System.Drawing.Size(23, 4);
|
||||||
|
this.btnEraseTempDiff.Text = "擦除温差图";
|
||||||
|
this.btnEraseTempDiff.ToolTipText = "使用透明色擦除温差图";
|
||||||
|
this.btnEraseTempDiff.Click += new System.EventHandler(this.BtnEraseTempDiff_Click);
|
||||||
|
//
|
||||||
// Setting
|
// Setting
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F);
|
||||||
@@ -332,6 +345,7 @@ namespace JoyD.Windows.CS
|
|||||||
private System.Windows.Forms.ToolStripButton btnBrushSize10;
|
private System.Windows.Forms.ToolStripButton btnBrushSize10;
|
||||||
private System.Windows.Forms.ToolStripButton btnBrushSize15;
|
private System.Windows.Forms.ToolStripButton btnBrushSize15;
|
||||||
private System.Windows.Forms.ToolStripButton btnBrushSize25;
|
private System.Windows.Forms.ToolStripButton btnBrushSize25;
|
||||||
|
private System.Windows.Forms.ToolStripButton btnEraseTempDiff;
|
||||||
private System.Windows.Forms.DataGridView dataGridViewTempDiff;
|
private System.Windows.Forms.DataGridView dataGridViewTempDiff;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -57,6 +57,7 @@ namespace JoyD.Windows.CS
|
|||||||
private Point _lastDrawPoint = Point.Empty; // 上一个绘制点的位置
|
private Point _lastDrawPoint = Point.Empty; // 上一个绘制点的位置
|
||||||
private bool _isDrawingRectangle = false; // 是否正在绘制矩形
|
private bool _isDrawingRectangle = false; // 是否正在绘制矩形
|
||||||
private Point _rectangleStartPoint = Point.Empty; // 矩形起始点
|
private Point _rectangleStartPoint = Point.Empty; // 矩形起始点
|
||||||
|
private bool _isEraseMode = false; // 擦除模式标志
|
||||||
|
|
||||||
public Setting()
|
public Setting()
|
||||||
{
|
{
|
||||||
@@ -80,13 +81,18 @@ namespace JoyD.Windows.CS
|
|||||||
|
|
||||||
// 初始隐藏删除按钮
|
// 初始隐藏删除按钮
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
btnDeleteRegion.Visible = false;
|
btnDeleteRegion.Visible = false;
|
||||||
// 初始状态/就绪状态下显示温差图按钮
|
// 初始状态/就绪状态下显示温差图按钮
|
||||||
btnDrawTempDiff.Visible = true;
|
btnDrawTempDiff.Visible = true;
|
||||||
// 初始状态下隐藏添加和删除温差图例按钮
|
// 初始状态下隐藏添加和删除温差图例按钮
|
||||||
btnAddTempDiff.Visible = false;
|
btnAddTempDiff.Visible = false;
|
||||||
btnDeleteTempDiff.Visible = false;
|
btnDeleteTempDiff.Visible = false;
|
||||||
|
// 初始化擦除按钮并设置为隐藏
|
||||||
|
if (btnEraseTempDiff != null)
|
||||||
|
{
|
||||||
|
btnEraseTempDiff.Visible = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
@@ -157,12 +163,43 @@ namespace JoyD.Windows.CS
|
|||||||
/// 25像素画笔大小按钮点击事件
|
/// 25像素画笔大小按钮点击事件
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private void BtnBrushSize25_Click(object sender, EventArgs e)
|
private void BtnBrushSize25_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
_currentBrushSize = 25;
|
_currentBrushSize = 25;
|
||||||
// 更新按钮选中状态
|
// 更新按钮选中状态
|
||||||
UpdateBrushSizeButtonSelection(25);
|
UpdateBrushSizeButtonSelection(25);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 擦除温差图按钮点击事件
|
||||||
|
/// </summary>
|
||||||
|
private void BtnEraseTempDiff_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// 切换擦除模式
|
||||||
|
_isEraseMode = !_isEraseMode;
|
||||||
|
btnEraseTempDiff.Checked = _isEraseMode;
|
||||||
|
|
||||||
|
if (_isEraseMode)
|
||||||
|
{
|
||||||
|
btnEraseTempDiff.ToolTipText = "擦除模式已启用,点击图片区域进行擦除(点击关闭)";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
btnEraseTempDiff.ToolTipText = "使用透明色擦除温差图";
|
||||||
|
}
|
||||||
|
|
||||||
|
// 重置上一个绘制点,确保下一次绘制/擦除是新的起点
|
||||||
|
_lastDrawPoint = Point.Empty;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Console.WriteLine("擦除模式切换失败: " + ex.Message);
|
||||||
|
_isEraseMode = false;
|
||||||
|
btnEraseTempDiff.Checked = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 创建表示画笔大小的图标
|
/// 创建表示画笔大小的图标
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -708,6 +745,7 @@ namespace JoyD.Windows.CS
|
|||||||
dataGridViewTempDiff.Visible = false; // 隐藏温差图例表格
|
dataGridViewTempDiff.Visible = false; // 隐藏温差图例表格
|
||||||
btnAddTempDiff.Visible = false; // 隐藏添加温差图例按钮
|
btnAddTempDiff.Visible = false; // 隐藏添加温差图例按钮
|
||||||
btnDeleteTempDiff.Visible = false; // 隐藏删除温差图例按钮
|
btnDeleteTempDiff.Visible = false; // 隐藏删除温差图例按钮
|
||||||
|
btnEraseTempDiff.Visible = false; // 隐藏擦除按钮
|
||||||
// 隐藏所有画笔大小按钮
|
// 隐藏所有画笔大小按钮
|
||||||
btnBrushSize1.Visible = false;
|
btnBrushSize1.Visible = false;
|
||||||
btnBrushSize3.Visible = false;
|
btnBrushSize3.Visible = false;
|
||||||
@@ -729,6 +767,7 @@ namespace JoyD.Windows.CS
|
|||||||
dataGridViewTempDiff.Visible = false; // 隐藏温差图例表格
|
dataGridViewTempDiff.Visible = false; // 隐藏温差图例表格
|
||||||
btnAddTempDiff.Visible = false; // 隐藏添加温差图例按钮
|
btnAddTempDiff.Visible = false; // 隐藏添加温差图例按钮
|
||||||
btnDeleteTempDiff.Visible = false; // 隐藏删除温差图例按钮
|
btnDeleteTempDiff.Visible = false; // 隐藏删除温差图例按钮
|
||||||
|
btnEraseTempDiff.Visible = false; // 隐藏擦除按钮
|
||||||
// 隐藏所有画笔大小按钮
|
// 隐藏所有画笔大小按钮
|
||||||
btnBrushSize1.Visible = false;
|
btnBrushSize1.Visible = false;
|
||||||
btnBrushSize3.Visible = false;
|
btnBrushSize3.Visible = false;
|
||||||
@@ -750,6 +789,7 @@ namespace JoyD.Windows.CS
|
|||||||
dataGridViewTempDiff.Visible = false; // 隐藏温差图例表格
|
dataGridViewTempDiff.Visible = false; // 隐藏温差图例表格
|
||||||
btnAddTempDiff.Visible = false; // 隐藏添加温差图例按钮
|
btnAddTempDiff.Visible = false; // 隐藏添加温差图例按钮
|
||||||
btnDeleteTempDiff.Visible = false; // 隐藏删除温差图例按钮
|
btnDeleteTempDiff.Visible = false; // 隐藏删除温差图例按钮
|
||||||
|
btnEraseTempDiff.Visible = false; // 隐藏擦除按钮
|
||||||
// 隐藏所有画笔大小按钮
|
// 隐藏所有画笔大小按钮
|
||||||
btnBrushSize1.Visible = false;
|
btnBrushSize1.Visible = false;
|
||||||
btnBrushSize3.Visible = false;
|
btnBrushSize3.Visible = false;
|
||||||
@@ -771,6 +811,7 @@ namespace JoyD.Windows.CS
|
|||||||
dataGridViewTempDiff.Visible = true; // 显示温差图例表格
|
dataGridViewTempDiff.Visible = true; // 显示温差图例表格
|
||||||
btnAddTempDiff.Visible = true; // 显示添加温差图例按钮
|
btnAddTempDiff.Visible = true; // 显示添加温差图例按钮
|
||||||
btnDeleteTempDiff.Visible = true; // 显示删除温差图例按钮
|
btnDeleteTempDiff.Visible = true; // 显示删除温差图例按钮
|
||||||
|
btnEraseTempDiff.Visible = true; // 显示擦除按钮
|
||||||
// 初始隐藏画笔大小按钮,等待用户选择温差图例后在SelectionChanged事件中显示
|
// 初始隐藏画笔大小按钮,等待用户选择温差图例后在SelectionChanged事件中显示
|
||||||
btnBrushSize1.Visible = false;
|
btnBrushSize1.Visible = false;
|
||||||
btnBrushSize3.Visible = false;
|
btnBrushSize3.Visible = false;
|
||||||
@@ -884,11 +925,13 @@ namespace JoyD.Windows.CS
|
|||||||
/// 退出温差图绘制模式
|
/// 退出温差图绘制模式
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private void ExitTempDiffDrawingMode()
|
private void ExitTempDiffDrawingMode()
|
||||||
{
|
{
|
||||||
// 重置上一个绘制点
|
// 重置上一个绘制点
|
||||||
_lastDrawPoint = Point.Empty;
|
_lastDrawPoint = Point.Empty;
|
||||||
_isTempDiffDrawingMode = false;
|
_isTempDiffDrawingMode = false;
|
||||||
btnDrawTempDiff.Checked = false;
|
btnDrawTempDiff.Checked = false;
|
||||||
|
_isEraseMode = false; // 重置擦除模式
|
||||||
|
btnEraseTempDiff.Checked = false;
|
||||||
|
|
||||||
// 重置鼠标光标并安全释放自定义光标资源
|
// 重置鼠标光标并安全释放自定义光标资源
|
||||||
try
|
try
|
||||||
@@ -904,17 +947,28 @@ namespace JoyD.Windows.CS
|
|||||||
currentCursor.Dispose();
|
currentCursor.Dispose();
|
||||||
}
|
}
|
||||||
else if (currentCursor != Cursors.Default)
|
else if (currentCursor != Cursors.Default)
|
||||||
{
|
{
|
||||||
// 如果是系统光标,直接设置为默认光标
|
// 如果是系统光标,直接设置为默认光标
|
||||||
picBoxTemp.Cursor = Cursors.Default;
|
picBoxTemp.Cursor = Cursors.Default;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Console.WriteLine("重置光标资源时发生异常: " + ex.Message);
|
Console.WriteLine("重置光标资源时发生异常: " + ex.Message);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 更新按钮提示文本
|
||||||
|
try
|
||||||
|
{
|
||||||
|
btnDrawTempDiff.ToolTipText = "绘制温差图";
|
||||||
|
btnEraseTempDiff.ToolTipText = "使用透明色擦除温差图";
|
||||||
// 确保光标设置为默认值
|
// 确保光标设置为默认值
|
||||||
picBoxTemp.Cursor = Cursors.Default;
|
picBoxTemp.Cursor = Cursors.Default;
|
||||||
}
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Console.WriteLine("更新按钮提示文本时发生异常: " + ex.Message);
|
||||||
|
}
|
||||||
|
|
||||||
// 更新按钮提示文本
|
// 更新按钮提示文本
|
||||||
btnDrawTempDiff.ToolTipText = "绘制温差图";
|
btnDrawTempDiff.ToolTipText = "绘制温差图";
|
||||||
@@ -1207,17 +1261,17 @@ namespace JoyD.Windows.CS
|
|||||||
catch {}
|
catch {}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 处理矩形绘制(按住Ctrl键)
|
// 处理矩形绘制/擦除(按住Ctrl键)
|
||||||
if (_isDrawingRectangle && e.Button == MouseButtons.Left && picBoxTemp.Image != null)
|
if (_isDrawingRectangle && e.Button == MouseButtons.Left && picBoxTemp.Image != null)
|
||||||
{
|
{
|
||||||
// 获取相对于图像的当前坐标
|
// 获取相对于图像的当前坐标
|
||||||
Point currentImagePoint = ControlPointToImagePoint(e.Location);
|
Point currentImagePoint = ControlPointToImagePoint(e.Location);
|
||||||
|
|
||||||
// 创建临时位图用于双重缓冲,避免闪烁
|
// 创建临时位图用于双重缓冲,避免闪烁
|
||||||
using (Bitmap tempBitmap = new Bitmap(_tempDiffOverlayImage))
|
using (Bitmap tempBitmap = new Bitmap(_tempDiffOverlayImage))
|
||||||
{
|
{
|
||||||
using (Graphics g = Graphics.FromImage(tempBitmap))
|
using (Graphics g = Graphics.FromImage(tempBitmap))
|
||||||
{
|
{
|
||||||
g.SmoothingMode = SmoothingMode.AntiAlias;
|
g.SmoothingMode = SmoothingMode.AntiAlias;
|
||||||
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
|
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
|
||||||
|
|
||||||
@@ -1228,22 +1282,33 @@ namespace JoyD.Windows.CS
|
|||||||
int height = Math.Abs(currentImagePoint.Y - _rectangleStartPoint.Y);
|
int height = Math.Abs(currentImagePoint.Y - _rectangleStartPoint.Y);
|
||||||
Rectangle rect = new Rectangle(x, y, width, height);
|
Rectangle rect = new Rectangle(x, y, width, height);
|
||||||
|
|
||||||
// 创建半透明的填充颜色
|
if (_isEraseMode)
|
||||||
Color fillColor = Color.FromArgb(128, selectedColor);
|
{
|
||||||
|
// 擦除模式:使用透明色填充整个矩形区域
|
||||||
// 绘制填充矩形
|
g.CompositingMode = System.Drawing.Drawing2D.CompositingMode.SourceCopy;
|
||||||
g.FillRectangle(new SolidBrush(fillColor), rect);
|
g.FillRectangle(Brushes.Transparent, rect);
|
||||||
|
g.CompositingMode = System.Drawing.Drawing2D.CompositingMode.SourceOver;
|
||||||
// 绘制矩形边框
|
}
|
||||||
using (Pen pen = new Pen(selectedColor, _currentBrushSize))
|
else
|
||||||
{
|
{
|
||||||
g.DrawRectangle(pen, rect);
|
// 普通绘制模式:使用半透明填充和边框
|
||||||
|
// 创建半透明的填充颜色
|
||||||
|
Color fillColor = Color.FromArgb(128, selectedColor);
|
||||||
|
|
||||||
|
// 绘制填充矩形
|
||||||
|
g.FillRectangle(new SolidBrush(fillColor), rect);
|
||||||
|
|
||||||
|
// 绘制矩形边框
|
||||||
|
using (Pen pen = new Pen(selectedColor, _currentBrushSize))
|
||||||
|
{
|
||||||
|
g.DrawRectangle(pen, rect);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 将临时位图复制回温差层图像
|
// 将临时位图复制回温差层图像
|
||||||
using (Graphics g = Graphics.FromImage(_tempDiffOverlayImage))
|
using (Graphics g = Graphics.FromImage(_tempDiffOverlayImage))
|
||||||
{
|
{
|
||||||
g.DrawImage(tempBitmap, 0, 0);
|
g.DrawImage(tempBitmap, 0, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1251,9 +1316,9 @@ namespace JoyD.Windows.CS
|
|||||||
// 触发重绘
|
// 触发重绘
|
||||||
picBoxTemp.Invalidate();
|
picBoxTemp.Invalidate();
|
||||||
}
|
}
|
||||||
// 普通绘制操作(未按住Ctrl键)
|
// 普通绘制/擦除操作(未按住Ctrl键)
|
||||||
else if (e.Button == MouseButtons.Left && !_isDrawingRectangle && picBoxTemp.Image != null)
|
else if (e.Button == MouseButtons.Left && !_isDrawingRectangle && picBoxTemp.Image != null)
|
||||||
{
|
{
|
||||||
// 初始化温差层图像(如果不存在或尺寸不匹配)
|
// 初始化温差层图像(如果不存在或尺寸不匹配)
|
||||||
if (_tempDiffOverlayImage == null ||
|
if (_tempDiffOverlayImage == null ||
|
||||||
_tempDiffOverlayImage.Width != picBoxTemp.Image.Width ||
|
_tempDiffOverlayImage.Width != picBoxTemp.Image.Width ||
|
||||||
@@ -1265,38 +1330,75 @@ namespace JoyD.Windows.CS
|
|||||||
// 获取相对于图像的坐标
|
// 获取相对于图像的坐标
|
||||||
Point imagePoint = ControlPointToImagePoint(e.Location);
|
Point imagePoint = ControlPointToImagePoint(e.Location);
|
||||||
|
|
||||||
// 在温差层图像上绘制
|
// 在温差层图像上绘制/擦除
|
||||||
using (Graphics g = Graphics.FromImage(_tempDiffOverlayImage))
|
using (Graphics g = Graphics.FromImage(_tempDiffOverlayImage))
|
||||||
{
|
{
|
||||||
g.SmoothingMode = SmoothingMode.AntiAlias;
|
g.SmoothingMode = SmoothingMode.AntiAlias;
|
||||||
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
|
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
|
||||||
|
|
||||||
// 使用当前选中的颜色和画笔大小绘制
|
if (_isEraseMode)
|
||||||
using (Pen pen = new Pen(selectedColor, _currentBrushSize))
|
{
|
||||||
{
|
// 擦除模式:使用透明色填充,设置CompositingMode为清除
|
||||||
pen.StartCap = LineCap.Round;
|
g.CompositingMode = System.Drawing.Drawing2D.CompositingMode.SourceCopy;
|
||||||
pen.EndCap = LineCap.Round;
|
|
||||||
pen.LineJoin = LineJoin.Round;
|
|
||||||
|
|
||||||
// 如果是首次绘制或上一个点无效,记录当前点作为起点
|
// 如果是首次擦除或上一个点无效,记录当前点作为起点
|
||||||
if (_lastDrawPoint == Point.Empty)
|
if (_lastDrawPoint == Point.Empty)
|
||||||
{
|
{
|
||||||
_lastDrawPoint = imagePoint;
|
_lastDrawPoint = imagePoint;
|
||||||
// 绘制起始点的圆形
|
// 绘制起始点的圆形(擦除区域)
|
||||||
int radius = _currentBrushSize / 2;
|
int radius = _currentBrushSize / 2;
|
||||||
g.FillEllipse(new SolidBrush(selectedColor),
|
g.FillEllipse(Brushes.Transparent,
|
||||||
imagePoint.X - radius,
|
imagePoint.X - radius,
|
||||||
imagePoint.Y - radius,
|
imagePoint.Y - radius,
|
||||||
_currentBrushSize,
|
_currentBrushSize,
|
||||||
_currentBrushSize);
|
_currentBrushSize);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// 绘制连线
|
// 使用透明色绘制粗线条进行擦除
|
||||||
g.DrawLine(pen, _lastDrawPoint, imagePoint);
|
using (Pen pen = new Pen(Color.Transparent, _currentBrushSize))
|
||||||
|
{
|
||||||
|
pen.StartCap = LineCap.Round;
|
||||||
|
pen.EndCap = LineCap.Round;
|
||||||
|
pen.LineJoin = LineJoin.Round;
|
||||||
|
g.DrawLine(pen, _lastDrawPoint, imagePoint);
|
||||||
|
}
|
||||||
// 更新上一个点
|
// 更新上一个点
|
||||||
_lastDrawPoint = imagePoint;
|
_lastDrawPoint = imagePoint;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 恢复默认的合成模式
|
||||||
|
g.CompositingMode = System.Drawing.Drawing2D.CompositingMode.SourceOver;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// 普通绘制模式
|
||||||
|
using (Pen pen = new Pen(selectedColor, _currentBrushSize))
|
||||||
|
{
|
||||||
|
pen.StartCap = LineCap.Round;
|
||||||
|
pen.EndCap = LineCap.Round;
|
||||||
|
pen.LineJoin = LineJoin.Round;
|
||||||
|
|
||||||
|
// 如果是首次绘制或上一个点无效,记录当前点作为起点
|
||||||
|
if (_lastDrawPoint == Point.Empty)
|
||||||
|
{
|
||||||
|
_lastDrawPoint = imagePoint;
|
||||||
|
// 绘制起始点的圆形
|
||||||
|
int radius = _currentBrushSize / 2;
|
||||||
|
g.FillEllipse(new SolidBrush(selectedColor),
|
||||||
|
imagePoint.X - radius,
|
||||||
|
imagePoint.Y - radius,
|
||||||
|
_currentBrushSize,
|
||||||
|
_currentBrushSize);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// 绘制连线
|
||||||
|
g.DrawLine(pen, _lastDrawPoint, imagePoint);
|
||||||
|
// 更新上一个点
|
||||||
|
_lastDrawPoint = imagePoint;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1864,6 +1966,40 @@ namespace JoyD.Windows.CS
|
|||||||
{
|
{
|
||||||
Console.WriteLine("温差图按钮图标设置失败: " + ex.Message);
|
Console.WriteLine("温差图按钮图标设置失败: " + ex.Message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 设置擦除按钮的图标
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Bitmap eraseTempDiffIcon = new Bitmap(24, 24);
|
||||||
|
using (Graphics g = Graphics.FromImage(eraseTempDiffIcon))
|
||||||
|
{
|
||||||
|
// 设置高质量绘图
|
||||||
|
g.SmoothingMode = SmoothingMode.AntiAlias;
|
||||||
|
|
||||||
|
// 清除背景为透明
|
||||||
|
g.Clear(Color.Transparent);
|
||||||
|
|
||||||
|
// 绘制橡皮擦图标 - 一个矩形表示橡皮擦
|
||||||
|
// 绘制橡皮擦主体
|
||||||
|
using (Pen pen = new Pen(Color.Black, 2))
|
||||||
|
{
|
||||||
|
g.DrawRectangle(pen, 6, 8, 12, 10);
|
||||||
|
}
|
||||||
|
// 绘制橡皮擦手柄
|
||||||
|
using (Pen pen = new Pen(Color.Black, 1.5f))
|
||||||
|
{
|
||||||
|
g.DrawLine(pen, 12, 8, 12, 4);
|
||||||
|
g.DrawLine(pen, 10, 4, 14, 4);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
btnEraseTempDiff.Image = eraseTempDiffIcon;
|
||||||
|
btnEraseTempDiff.ImageTransparentColor = Color.Transparent;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Console.WriteLine("擦除按钮图标设置失败: " + ex.Message);
|
||||||
|
}
|
||||||
|
|
||||||
// 设置添加温差图例按钮的图标
|
// 设置添加温差图例按钮的图标
|
||||||
try
|
try
|
||||||
|
|||||||
Reference in New Issue
Block a user