集成测量工具:点点距、点线距、角度测量;十字辅助线;右键菜单;图像自适应窗口优化

This commit is contained in:
李伟
2026-04-24 14:36:52 +08:00
parent 9e39447144
commit 7fdc6adb44
6 changed files with 211 additions and 12 deletions
@@ -25,9 +25,17 @@ namespace XplorePlane.Views
{
if (e is MeasureCompletedEventArgs args && DataContext is ViewportPanelViewModel vm)
{
vm.MeasurementResult = $"{args.Distance:F2} px";
string typeLabel = args.MeasureType == "PointToLine" ? "点线距" : "点点距";
vm.ImageInfo = $"{typeLabel}: {args.Distance:F2} px | ({args.P1.X:F0},{args.P1.Y:F0}) → ({args.P2.X:F0},{args.P2.Y:F0}) | 共 {args.TotalCount} 条测量";
string typeLabel = args.MeasureType switch
{
"PointToLine" => "点线距",
"Angle" => "角度",
_ => "点点距"
};
string valueText = args.MeasureType == "Angle"
? $"{args.Distance:F2}°"
: $"{args.Distance:F2} px";
vm.MeasurementResult = valueText;
vm.ImageInfo = $"{typeLabel}: {valueText} | 共 {args.TotalCount} 条测量";
}
};
RoiCanvas.MeasureStatusChanged += (s, e) =>
@@ -52,6 +60,7 @@ namespace XplorePlane.Views
{
MeasurementToolMode.PointDistance => XP.ImageProcessing.RoiControl.Models.MeasureMode.PointDistance,
MeasurementToolMode.PointLineDistance => XP.ImageProcessing.RoiControl.Models.MeasureMode.PointToLine,
MeasurementToolMode.Angle => XP.ImageProcessing.RoiControl.Models.MeasureMode.Angle,
_ => XP.ImageProcessing.RoiControl.Models.MeasureMode.None
};
}, Prism.Events.ThreadOption.UIThread);