鼠标温度实时变化

This commit is contained in:
zqm
2026-01-21 14:36:27 +08:00
parent 30117b5ae0
commit b8d86924a2
2 changed files with 25 additions and 4 deletions

View File

@@ -1220,8 +1220,11 @@ namespace JoyD.Windows.CS.Toprie
// 调用温度显示更新方法 // 调用温度显示更新方法
// 在就绪条件下,调用更新实时信息 // 在就绪条件下,调用更新实时信息
bool isReady = _deviceManager != null && (_isFirst || (!_isPaused && IsDevicePingable && _deviceManager.ConnectionStatus == ConnectionStatus.Connected)); bool isReady = _deviceManager != null && (_isFirst || (!_isPaused && IsDevicePingable && _deviceManager.ConnectionStatus == ConnectionStatus.Connected));
if (isReady) // 获取当前温度数据(在方法开始时获取,确保整个方法使用同一数据)
TemperatureData currentTemperatureData = null;
if (isReady && _deviceManager != null)
{ {
currentTemperatureData = _deviceManager.LastTemperature;
UpdateRealTimeInfoOnUI(); UpdateRealTimeInfoOnUI();
} }
@@ -1329,8 +1332,8 @@ namespace JoyD.Windows.CS.Toprie
if (_previewForm != null && !_previewForm.IsDisposed) if (_previewForm != null && !_previewForm.IsDisposed)
{ {
_previewForm.UpdateImage(tempImage); _previewForm.UpdateImage(tempImage);
// 传递温度数据给预览窗口 // 传递温度数据给预览窗口 - 使用本地变量确保数据一致性
_previewForm.UpdateTemperatureData(_deviceManager.LastTemperature); _previewForm.UpdateTemperatureData(currentTemperatureData);
} }
// 步骤5同步更新检测配置窗口的实时图像属性 // 步骤5同步更新检测配置窗口的实时图像属性
// 创建LastImage的副本并通过UpdateRealTimeImage方法传递给Setting窗口 // 创建LastImage的副本并通过UpdateRealTimeImage方法传递给Setting窗口

View File

@@ -100,6 +100,17 @@ namespace JoyD.Windows.CS
// 更新温度数据 // 更新温度数据
_temperatureData = temperatureData; _temperatureData = temperatureData;
// 温度数据更新后,自动重新计算当前鼠标指向点的温度
lock (_dataPointLock)
{
if (_currentDataPoint.X >= 0 && _currentDataPoint.Y >= 0)
{
// 重新获取温度值并使用防抖机制更新标题栏
float temperature = GetTemperatureAtDataPoint(_currentDataPoint);
UpdateTitleBarWithDebounce(temperature);
}
}
} }
/// <summary> /// <summary>
@@ -255,7 +266,14 @@ namespace JoyD.Windows.CS
int y = Math.Max(0, Math.Min(imagePoint.Y, DISPLAY_HEIGHT - 1)); int y = Math.Max(0, Math.Min(imagePoint.Y, DISPLAY_HEIGHT - 1));
// 计算原始数据点坐标(整数除法,向下取整) // 计算原始数据点坐标(整数除法,向下取整)
return new Point(x / 2, y / 2); int dataX = x / 2;
int dataY = y / 2;
// 确保数据点坐标在有效范围内
dataX = Math.Max(0, Math.Min(dataX, DATA_WIDTH - 1));
dataY = Math.Max(0, Math.Min(dataY, DATA_HEIGHT - 1));
return new Point(dataX, dataY);
} }
// 获取特定数据点的温度值 // 获取特定数据点的温度值