diff --git a/Windows/CS/Framework4.0/Toprie/Toprie/Camera.cs b/Windows/CS/Framework4.0/Toprie/Toprie/Camera.cs index 67c7a7d..77ed943 100644 --- a/Windows/CS/Framework4.0/Toprie/Toprie/Camera.cs +++ b/Windows/CS/Framework4.0/Toprie/Toprie/Camera.cs @@ -1113,96 +1113,126 @@ namespace JoyD.Windows.CS.Toprie /// 右键菜单显示前的事件处理方法 /// 用于更新色彩模式菜单项的选中状态 /// + /// + /// 右键菜单打开事件处理 + /// private void ContextMenuStrip1_Opening(object sender, System.ComponentModel.CancelEventArgs e) { // 暂停菜单项的文本已经在点击事件中更新,这里无需再次更新 if (DesignMode) return; 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; } - - // 清除视频模式菜单项的选中状态 - 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) + else { - 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) { - // 获取当前色彩模式 - 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); + colorModeToolStripMenuItem.Visible = _deviceManager.CurrentImageMode == ImageMode.Infrared; } - // 更新视频模式菜单项的选中状态 - 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枚举 - var currentImageMode = _deviceManager.CurrentImageMode; - thermalModeToolStripMenuItem.Checked = currentImageMode == ImageMode.Infrared; - visibleModeToolStripMenuItem.Checked = currentImageMode == ImageMode.Natural; - } - catch (Exception ex) - { - Console.WriteLine("获取当前图像模式失败: " + ex.Message); + try + { + // 获取当前色彩模式 + 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 + { + // 更改为使用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) { - Console.WriteLine("更新右键菜单选中状态失败: " + ex.Message); + Console.WriteLine($"更新右键菜单选中状态失败: {ex.Message}"); } }