测量工具标号:各类测量标签显示序号,删除后自动重编号

This commit is contained in:
李伟
2026-04-24 16:32:21 +08:00
parent 5900907236
commit b593805f11
5 changed files with 44 additions and 5 deletions
@@ -19,6 +19,7 @@ namespace XP.ImageProcessing.RoiControl.Models
public Point V { get; set; }
public Point A { get; set; }
public Point B { get; set; }
public int Index { get; set; }
public double AngleDeg
{
@@ -77,7 +78,7 @@ namespace XP.ImageProcessing.RoiControl.Models
midAngle += Math.PI;
double labelDist = arcRadius + 16;
Label.Text = $"{angleDeg:F1}°";
Label.Text = (Index > 0 ? $"#{Index} " : "") + $"{angleDeg:F1}°";
Canvas.SetLeft(Label, V.X + labelDist * Math.Cos(midAngle) - 15);
Canvas.SetTop(Label, V.Y + labelDist * Math.Sin(midAngle) - 8);
Label.Visibility = Visibility.Visible;
@@ -58,6 +58,7 @@ namespace XP.ImageProcessing.RoiControl.Models
public double E4Angle { get; set; }
public double THTLimit { get; set; } = 75.0;
public int Index { get; set; }
public double FillRate
{
@@ -100,7 +101,7 @@ namespace XP.ImageProcessing.RoiControl.Models
double rate = FillRate;
string cls = Classification;
Label.Text = $"Fill: {rate:F1}% | THTLimit: {THTLimit:F1}% | {cls}";
Label.Text = (Index > 0 ? $"#{Index} " : "") + $"Fill: {rate:F1}% | THTLimit: {THTLimit:F1}% | {cls}";
Label.Foreground = cls == "PASS" ? Brushes.Lime : Brushes.Red;
double labelX = Math.Max(Math.Max(E1.X, E2.X), Math.Max(E3.X, E4.X)) + 15;
double labelY = (E1.Y + E2.Y) / 2;
@@ -34,10 +34,12 @@ namespace XP.ImageProcessing.RoiControl.Models
public void UpdateLabel(string distanceText = null)
{
Label.Text = distanceText ?? $"{Distance:F2} px";
Label.Text = (Index > 0 ? $"#{Index} " : "") + (distanceText ?? $"{Distance:F2} px");
Canvas.SetLeft(Label, (P1.X + P2.X) / 2 + 8);
Canvas.SetTop(Label, (P1.Y + P2.Y) / 2 - 18);
Label.Visibility = Visibility.Visible;
}
public int Index { get; set; }
}
}
@@ -20,6 +20,7 @@ namespace XP.ImageProcessing.RoiControl.Models
public Point L1 { get; set; }
public Point L2 { get; set; }
public Point P { get; set; }
public int Index { get; set; }
public double Distance
{
@@ -85,7 +86,7 @@ namespace XP.ImageProcessing.RoiControl.Models
FootDot.Visibility = Visibility.Visible;
// 标签
Label.Text = distanceText ?? $"{Distance:F2} px";
Label.Text = (Index > 0 ? $"#{Index} " : "") + (distanceText ?? $"{Distance:F2} px");
Canvas.SetLeft(Label, (P.X + foot.X) / 2 + 8);
Canvas.SetTop(Label, (P.Y + foot.Y) / 2 - 18);
Label.Visibility = Visibility.Visible;