OffsetConverter.cs 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. using System;
  2. using System.Globalization;
  3. using System.Linq;
  4. using System.Windows;
  5. using System.Windows.Data;
  6. namespace CustomUI.Converters
  7. {
  8. public class OffsetConverter : IMultiValueConverter
  9. {
  10. public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
  11. {
  12. if (values.FirstOrDefault(v => v == DependencyProperty.UnsetValue) != null)
  13. {
  14. return double.NaN;
  15. }
  16. double placementTargetWidth = (double)values[0];
  17. double toolTipWidth = (double)values[1];
  18. if("Center".Equals(parameter))
  19. {
  20. return (placementTargetWidth / 2.0) - (toolTipWidth / 2.0);
  21. }
  22. else if("Right".Equals(parameter))
  23. {
  24. return placementTargetWidth - toolTipWidth;
  25. }
  26. return 0;
  27. }
  28. public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
  29. {
  30. return null;
  31. }
  32. }
  33. }