实现暂停状态下隐藏图像和色彩菜单
This commit is contained in:
@@ -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;
|
||||||
PaletteType currentPalette = _deviceManager.CurrentPaletteType;
|
fusionMode1ToolStripMenuItem.Visible = true;
|
||||||
|
fusionMode2ToolStripMenuItem.Visible = true;
|
||||||
|
fusionMode3ToolStripMenuItem.Visible = true;
|
||||||
|
fusionMode4ToolStripMenuItem.Visible = true;
|
||||||
|
fusionMode5ToolStripMenuItem.Visible = true;
|
||||||
|
|
||||||
// 根据当前色彩模式设置对应菜单项的选中状态
|
// 根据当前图像模式控制色彩模式菜单的可见性
|
||||||
switch (currentPalette)
|
if (_deviceManager != null)
|
||||||
|
{
|
||||||
|
colorModeToolStripMenuItem.Visible = _deviceManager.CurrentImageMode == ImageMode.Infrared;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 清除视频模式菜单项的选中状态
|
||||||
|
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)
|
||||||
|
{
|
||||||
|
try
|
||||||
{
|
{
|
||||||
case PaletteType.WhiteHot:
|
// 获取当前色彩模式
|
||||||
whiteHotToolStripMenuItem.Checked = true;
|
PaletteType currentPalette = _deviceManager.CurrentPaletteType;
|
||||||
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
|
switch (currentPalette)
|
||||||
{
|
{
|
||||||
// 更改为使用ImageMode枚举
|
case PaletteType.WhiteHot:
|
||||||
var currentImageMode = _deviceManager.CurrentImageMode;
|
whiteHotToolStripMenuItem.Checked = true;
|
||||||
thermalModeToolStripMenuItem.Checked = currentImageMode == ImageMode.Infrared;
|
break;
|
||||||
visibleModeToolStripMenuItem.Checked = currentImageMode == ImageMode.Natural;
|
case PaletteType.BlackHot:
|
||||||
}
|
blackHotToolStripMenuItem.Checked = true;
|
||||||
catch (Exception ex)
|
break;
|
||||||
{
|
case PaletteType.IronRed:
|
||||||
Console.WriteLine("获取当前图像模式失败: " + ex.Message);
|
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}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user