实现暂停状态下隐藏图像和色彩菜单

This commit is contained in:
zqm
2025-10-30 10:05:29 +08:00
parent 0f8382576d
commit 4bdd1b2790

View File

@@ -1113,96 +1113,126 @@ namespace JoyD.Windows.CS.Toprie
/// 右键菜单显示前的事件处理方法 /// 右键菜单显示前的事件处理方法
/// 用于更新色彩模式菜单项的选中状态 /// 用于更新色彩模式菜单项的选中状态
/// </summary> /// </summary>
/// <summary>
/// 右键菜单打开事件处理
/// </summary>
private void ContextMenuStrip1_Opening(object sender, System.ComponentModel.CancelEventArgs e) private void ContextMenuStrip1_Opening(object sender, System.ComponentModel.CancelEventArgs e)
{ {
// 暂停菜单项的文本已经在点击事件中更新,这里无需再次更新 // 暂停菜单项的文本已经在点击事件中更新,这里无需再次更新
if (DesignMode) return; if (DesignMode) return;
try try
{ {
// 根据当前图像模式控制色彩模式菜单的可见性 // 检查是否处于暂停状态
if (_deviceManager != null) bool isPaused = pauseImageUpdateToolStripMenuItem.Text == "恢复图像更新";
// 在暂停状态下,隐藏图像和色彩相关菜单
if (isPaused)
{ {
colorModeToolStripMenuItem.Visible = _deviceManager.CurrentImageMode == ImageMode.Infrared; thermalModeToolStripMenuItem.Visible = false;
visibleModeToolStripMenuItem.Visible = false;
fusionMode1ToolStripMenuItem.Visible = false;
fusionMode2ToolStripMenuItem.Visible = false;
fusionMode3ToolStripMenuItem.Visible = false;
fusionMode4ToolStripMenuItem.Visible = false;
fusionMode5ToolStripMenuItem.Visible = false;
colorModeToolStripMenuItem.Visible = false;
} }
else
// 清除视频模式菜单项的选中状态
thermalModeToolStripMenuItem.Checked = false;
visibleModeToolStripMenuItem.Checked = false;
fusionMode1ToolStripMenuItem.Checked = false;
fusionMode2ToolStripMenuItem.Checked = false;
fusionMode3ToolStripMenuItem.Checked = false;
fusionMode4ToolStripMenuItem.Checked = false;
fusionMode5ToolStripMenuItem.Checked = false;
// 清除色彩模式菜单项的选中状态
whiteHotToolStripMenuItem.Checked = false;
blackHotToolStripMenuItem.Checked = false;
ironRedToolStripMenuItem.Checked = false;
lavaToolStripMenuItem.Checked = false;
rainbowToolStripMenuItem.Checked = false;
ironGrayToolStripMenuItem.Checked = false;
redHotToolStripMenuItem.Checked = false;
rainbow2ToolStripMenuItem.Checked = false;
// 尝试获取当前色彩模式并更新对应菜单项的选中状态
if (pauseImageUpdateToolStripMenuItem.Text == "暂停图像更新" && _deviceManager != null && _deviceManager.ConnectionStatus == ConnectionStatus.Connected)
{ {
try // 在非暂停状态下,显示图像模式相关菜单
thermalModeToolStripMenuItem.Visible = true;
visibleModeToolStripMenuItem.Visible = true;
fusionMode1ToolStripMenuItem.Visible = true;
fusionMode2ToolStripMenuItem.Visible = true;
fusionMode3ToolStripMenuItem.Visible = true;
fusionMode4ToolStripMenuItem.Visible = true;
fusionMode5ToolStripMenuItem.Visible = true;
// 根据当前图像模式控制色彩模式菜单的可见性
if (_deviceManager != null)
{ {
// 获取当前色彩模式 colorModeToolStripMenuItem.Visible = _deviceManager.CurrentImageMode == ImageMode.Infrared;
PaletteType currentPalette = _deviceManager.CurrentPaletteType;
// 根据当前色彩模式设置对应菜单项的选中状态
switch (currentPalette)
{
case PaletteType.WhiteHot:
whiteHotToolStripMenuItem.Checked = true;
break;
case PaletteType.BlackHot:
blackHotToolStripMenuItem.Checked = true;
break;
case PaletteType.IronRed:
ironRedToolStripMenuItem.Checked = true;
break;
case PaletteType.Lava:
lavaToolStripMenuItem.Checked = true;
break;
case PaletteType.Rainbow:
rainbowToolStripMenuItem.Checked = true;
break;
case PaletteType.IronGray:
ironGrayToolStripMenuItem.Checked = true;
break;
case PaletteType.RedHot:
redHotToolStripMenuItem.Checked = true;
break;
case PaletteType.Rainbow2:
rainbow2ToolStripMenuItem.Checked = true;
break;
}
}
catch (Exception ex)
{
Console.WriteLine("获取当前色彩模式失败: " + ex.Message);
} }
// 更新视频模式菜单项的选中状态 // 清除视频模式菜单项的选中状态
try thermalModeToolStripMenuItem.Checked = false;
visibleModeToolStripMenuItem.Checked = false;
fusionMode1ToolStripMenuItem.Checked = false;
fusionMode2ToolStripMenuItem.Checked = false;
fusionMode3ToolStripMenuItem.Checked = false;
fusionMode4ToolStripMenuItem.Checked = false;
fusionMode5ToolStripMenuItem.Checked = false;
// 清除色彩模式菜单项的选中状态
whiteHotToolStripMenuItem.Checked = false;
blackHotToolStripMenuItem.Checked = false;
ironRedToolStripMenuItem.Checked = false;
lavaToolStripMenuItem.Checked = false;
rainbowToolStripMenuItem.Checked = false;
ironGrayToolStripMenuItem.Checked = false;
redHotToolStripMenuItem.Checked = false;
rainbow2ToolStripMenuItem.Checked = false;
// 尝试获取当前色彩模式并更新对应菜单项的选中状态
if (_deviceManager != null && _deviceManager.ConnectionStatus == ConnectionStatus.Connected)
{ {
// 更改为使用ImageMode枚举 try
var currentImageMode = _deviceManager.CurrentImageMode; {
thermalModeToolStripMenuItem.Checked = currentImageMode == ImageMode.Infrared; // 获取当前色彩模式
visibleModeToolStripMenuItem.Checked = currentImageMode == ImageMode.Natural; PaletteType currentPalette = _deviceManager.CurrentPaletteType;
}
catch (Exception ex) // 根据当前色彩模式设置对应菜单项的选中状态
{ switch (currentPalette)
Console.WriteLine("获取当前图像模式失败: " + ex.Message); {
case PaletteType.WhiteHot:
whiteHotToolStripMenuItem.Checked = true;
break;
case PaletteType.BlackHot:
blackHotToolStripMenuItem.Checked = true;
break;
case PaletteType.IronRed:
ironRedToolStripMenuItem.Checked = true;
break;
case PaletteType.Lava:
lavaToolStripMenuItem.Checked = true;
break;
case PaletteType.Rainbow:
rainbowToolStripMenuItem.Checked = true;
break;
case PaletteType.IronGray:
ironGrayToolStripMenuItem.Checked = true;
break;
case PaletteType.RedHot:
redHotToolStripMenuItem.Checked = true;
break;
case PaletteType.Rainbow2:
rainbow2ToolStripMenuItem.Checked = true;
break;
}
}
catch (Exception ex)
{
Console.WriteLine($"获取当前色彩模式失败: {ex.Message}");
}
// 更新视频模式菜单项的选中状态
try
{
// 更改为使用ImageMode枚举
var currentImageMode = _deviceManager.CurrentImageMode;
thermalModeToolStripMenuItem.Checked = currentImageMode == ImageMode.Infrared;
visibleModeToolStripMenuItem.Checked = currentImageMode == ImageMode.Natural;
}
catch (Exception ex)
{
Console.WriteLine($"获取当前图像模式失败: {ex.Message}");
}
} }
} }
} }
catch (Exception ex) catch (Exception ex)
{ {
Console.WriteLine("更新右键菜单选中状态失败: " + ex.Message); Console.WriteLine($"更新右键菜单选中状态失败: {ex.Message}");
} }
} }