using System; using System.Globalization; using System.Windows.Data; namespace CtrEditor.Converters { /// /// Converter that subtracts a parameter value from the input value /// Useful for calculations like width - margin, etc. /// public class SubtractConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { try { if (value != null && parameter != null) { var inputValue = System.Convert.ToDouble(value); var subtractValue = System.Convert.ToDouble(parameter); var result = inputValue - subtractValue; return Math.Max(0, result); // Ensure result is not negative } } catch (Exception ex) { System.Diagnostics.Debug.WriteLine($"SubtractConverter.Convert: Exception - {ex.Message}"); } return 0.0; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { try { if (value != null && parameter != null) { var inputValue = System.Convert.ToDouble(value); var addValue = System.Convert.ToDouble(parameter); return inputValue + addValue; } } catch (Exception ex) { System.Diagnostics.Debug.WriteLine($"SubtractConverter.ConvertBack: Exception - {ex.Message}"); } return 0.0; } } }