diff --git a/XplorePlane/Services/ImageProcessing/WizardOverlayRenderer.cs b/XplorePlane/Services/ImageProcessing/WizardOverlayRenderer.cs index 87f47679..c43272dd 100644 --- a/XplorePlane/Services/ImageProcessing/WizardOverlayRenderer.cs +++ b/XplorePlane/Services/ImageProcessing/WizardOverlayRenderer.cs @@ -70,16 +70,26 @@ namespace XplorePlane.Services.ImageProcessing Canvas.SetTop(ellipse, ball.CenterY - radius); canvas.Children.Add(ellipse); + // 编号放在焊球中心,使用白底黑字提升在深色焊球上的可读性。 + var labelWidth = Math.Max(34, Math.Min(72, radius * 0.9)); + const double labelHeight = 26; var label = new TextBlock { Text = string.IsNullOrEmpty(ball.Label) ? $"#{ball.Id}" : ball.Label, - FontSize = 12, + Width = labelWidth, + Height = labelHeight, + FontSize = 18, FontWeight = FontWeights.Bold, - Foreground = color, + Foreground = Brushes.Black, + Background = Brushes.White, + Opacity = 0.92, + TextAlignment = TextAlignment.Center, + VerticalAlignment = VerticalAlignment.Center, + Padding = new Thickness(2, 0, 2, 0), IsHitTestVisible = false }; - Canvas.SetLeft(label, ball.CenterX - radius); - Canvas.SetTop(label, ball.CenterY + radius + 2); + Canvas.SetLeft(label, ball.CenterX - labelWidth / 2.0); + Canvas.SetTop(label, ball.CenterY - labelHeight / 2.0); canvas.Children.Add(label); } }