diff --git a/XplorePlane/ViewModels/Main/MainViewModel.cs b/XplorePlane/ViewModels/Main/MainViewModel.cs index 14f5ecb..fe23b8f 100644 --- a/XplorePlane/ViewModels/Main/MainViewModel.cs +++ b/XplorePlane/ViewModels/Main/MainViewModel.cs @@ -1,4 +1,4 @@ -using Prism.Commands; +using Prism.Commands; using Prism.Events; using Prism.Ioc; using Prism.Mvvm; @@ -14,6 +14,7 @@ using XplorePlane.ViewModels.Cnc; using XplorePlane.Views; using XplorePlane.Views.Cnc; using XP.Common.Logging.Interfaces; +using XP.Common.GeneralForm.Views; using XP.Common.PdfViewer.Interfaces; using XP.Hardware.MotionControl.Abstractions; @@ -449,32 +450,49 @@ namespace XplorePlane.ViewModels #region 测量命令实现 + private bool CheckImageLoaded() + { + try + { + var viewportVm = _containerProvider.Resolve(); + if (viewportVm?.ImageSource != null) return true; + } + catch { } + HexMessageBox.Show("请先加载图像", MessageBoxButton.OK, MessageBoxImage.Information); + return false; + } + private void ExecutePointDistanceMeasure() { + if (!CheckImageLoaded()) return; _logger.Info("点点距测量功能已触发"); _eventAggregator.GetEvent().Publish(MeasurementToolMode.PointDistance); } private void ExecutePointLineDistanceMeasure() { + if (!CheckImageLoaded()) return; _logger.Info("点线距测量功能已触发"); _eventAggregator.GetEvent().Publish(MeasurementToolMode.PointLineDistance); } private void ExecuteAngleMeasure() { + if (!CheckImageLoaded()) return; _logger.Info("角度测量功能已触发"); _eventAggregator.GetEvent().Publish(MeasurementToolMode.Angle); } private void ExecuteThroughHoleFillRateMeasure() { + if (!CheckImageLoaded()) return; _logger.Info("通孔填锡率测量功能已触发"); _eventAggregator.GetEvent().Publish(MeasurementToolMode.ThroughHoleFillRate); } private void ExecuteBgaVoidMeasure() { + if (!CheckImageLoaded()) return; _logger.Info("BGA空隙测量功能已触发"); _eventAggregator.GetEvent().Publish(MeasurementToolMode.BgaVoid); }