using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Data; using System.Globalization; using System.Windows; using System.Windows.Media; namespace Microsoft.Research.DynamicDataDisplay.Charts.Markers { public class BarFromValueConverter : IValueConverter { /// /// Initializes a new instance of the class. /// public BarFromValueConverter() { } public Brush PositiveBrush { get; set; } public Brush NegativeBrush { get; set; } #region IValueConverter Members public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if (!(value is double)) return DependencyProperty.UnsetValue; double height = (double)value; if (targetType == typeof(Brush)) { if (height > 0) return PositiveBrush; else return NegativeBrush; } else if (targetType == typeof(double)) { return Math.Abs(height); } else if (targetType == typeof(VerticalAlignment)) { return height > 0 ? VerticalAlignment.Bottom : VerticalAlignment.Top; } return DependencyProperty.UnsetValue; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { throw new NotSupportedException(); } #endregion } }