测量工具使用前检查图像是否已加载,使用HexMessageBox弹框提示

This commit is contained in:
李伟
2026-04-27 09:05:27 +08:00
parent b593805f11
commit 04d97fee9d
+19 -1
View File
@@ -1,4 +1,4 @@
using Prism.Commands; using Prism.Commands;
using Prism.Events; using Prism.Events;
using Prism.Ioc; using Prism.Ioc;
using Prism.Mvvm; using Prism.Mvvm;
@@ -14,6 +14,7 @@ using XplorePlane.ViewModels.Cnc;
using XplorePlane.Views; using XplorePlane.Views;
using XplorePlane.Views.Cnc; using XplorePlane.Views.Cnc;
using XP.Common.Logging.Interfaces; using XP.Common.Logging.Interfaces;
using XP.Common.GeneralForm.Views;
using XP.Common.PdfViewer.Interfaces; using XP.Common.PdfViewer.Interfaces;
using XP.Hardware.MotionControl.Abstractions; using XP.Hardware.MotionControl.Abstractions;
@@ -449,32 +450,49 @@ namespace XplorePlane.ViewModels
#region #region
private bool CheckImageLoaded()
{
try
{
var viewportVm = _containerProvider.Resolve<ViewportPanelViewModel>();
if (viewportVm?.ImageSource != null) return true;
}
catch { }
HexMessageBox.Show("请先加载图像", MessageBoxButton.OK, MessageBoxImage.Information);
return false;
}
private void ExecutePointDistanceMeasure() private void ExecutePointDistanceMeasure()
{ {
if (!CheckImageLoaded()) return;
_logger.Info("点点距测量功能已触发"); _logger.Info("点点距测量功能已触发");
_eventAggregator.GetEvent<MeasurementToolEvent>().Publish(MeasurementToolMode.PointDistance); _eventAggregator.GetEvent<MeasurementToolEvent>().Publish(MeasurementToolMode.PointDistance);
} }
private void ExecutePointLineDistanceMeasure() private void ExecutePointLineDistanceMeasure()
{ {
if (!CheckImageLoaded()) return;
_logger.Info("点线距测量功能已触发"); _logger.Info("点线距测量功能已触发");
_eventAggregator.GetEvent<MeasurementToolEvent>().Publish(MeasurementToolMode.PointLineDistance); _eventAggregator.GetEvent<MeasurementToolEvent>().Publish(MeasurementToolMode.PointLineDistance);
} }
private void ExecuteAngleMeasure() private void ExecuteAngleMeasure()
{ {
if (!CheckImageLoaded()) return;
_logger.Info("角度测量功能已触发"); _logger.Info("角度测量功能已触发");
_eventAggregator.GetEvent<MeasurementToolEvent>().Publish(MeasurementToolMode.Angle); _eventAggregator.GetEvent<MeasurementToolEvent>().Publish(MeasurementToolMode.Angle);
} }
private void ExecuteThroughHoleFillRateMeasure() private void ExecuteThroughHoleFillRateMeasure()
{ {
if (!CheckImageLoaded()) return;
_logger.Info("通孔填锡率测量功能已触发"); _logger.Info("通孔填锡率测量功能已触发");
_eventAggregator.GetEvent<MeasurementToolEvent>().Publish(MeasurementToolMode.ThroughHoleFillRate); _eventAggregator.GetEvent<MeasurementToolEvent>().Publish(MeasurementToolMode.ThroughHoleFillRate);
} }
private void ExecuteBgaVoidMeasure() private void ExecuteBgaVoidMeasure()
{ {
if (!CheckImageLoaded()) return;
_logger.Info("BGA空隙测量功能已触发"); _logger.Info("BGA空隙测量功能已触发");
_eventAggregator.GetEvent<MeasurementToolEvent>().Publish(MeasurementToolMode.BgaVoid); _eventAggregator.GetEvent<MeasurementToolEvent>().Publish(MeasurementToolMode.BgaVoid);
} }