using System; using System.Globalization; using System.Windows; using System.Windows.Data; using TeamAAS_VP.Resources.Languages; namespace TeamAAS_VP.ValueConverter { public class RoiToTextConverter : IMultiValueConverter { public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) { try { if (values == null || values.Length < 5) return Lang.δÉèÖÃ; // Helper to get numeric value from different value types double GetDouble(object v) { if (v == null) return double.NaN; if (v is double d) return d; if (v is float f) return f; if (v is int i) return i; if (v is long l) return l; if (v is short s) return s; if (v is string s2 && double.TryParse(s2, out var p)) return p; if (v == DependencyProperty.UnsetValue) return double.NaN; return double.NaN; } double x = GetDouble(values[0]); double y = GetDouble(values[1]); double w = GetDouble(values[2]); double h = GetDouble(values[3]); double angle = GetDouble(values[4]); if (double.IsNaN(x) || double.IsNaN(y) || double.IsNaN(w) || double.IsNaN(h) || double.IsNaN(angle)) return Lang.δÉèÖÃ; if (w <= 0 || h <= 0) return Lang.δÉèÖÃ; return $"X={x:F0}, Y={y:F0}, W={w:F0}, H={h:F0}, Angle={angle:F1}¡ã"; } catch { return Lang.δÉèÖÃ; } } public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture) { throw new NotImplementedException(); } } }