Mercurial > silverbladetech
view MetroWpf/MetroWpf.Xaml/Converters/DoubleToGridLengthConverter.cs @ 121:8f94475d3146 tip
final code
author | stevenh7776 |
---|---|
date | Thu, 31 May 2012 15:35:26 +0100 |
parents | 060f02cd4591 |
children |
line wrap: on
line source
using System; using System.Globalization; using System.Windows; using System.Windows.Data; namespace MetroWpf.Xaml.Converters { [ValueConversion(typeof(double), typeof(GridLength))] public sealed class DoubleToGridLengthConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if (!(value is double)) { return new GridLength(0.0, GridUnitType.Auto); } var unitType = parameter as string; switch (unitType) { case "Auto": return new GridLength(0.0, GridUnitType.Auto); case "*": return new GridLength((double)value, GridUnitType.Star); default: return new GridLength((double)value, GridUnitType.Pixel); } } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { var unitType = parameter as string; if (!(value is GridLength)) { return DependencyProperty.UnsetValue; } var length = (GridLength)value; switch (unitType) { case "Auto": return length.IsAuto ? length.Value : DependencyProperty.UnsetValue; case "*": return length.IsStar ? length.Value : DependencyProperty.UnsetValue; default: return length.IsAbsolute ? length.Value : DependencyProperty.UnsetValue; } } } } ;