Mercurial > silverbladetech
view MetroWpf/MetroWpf.Xaml/Converters/GridLengthToDoubleConverter.cs @ 96:188f8b366e87
Unit test project correctly setup as normal class library DLL.
author | stevenhollidge <stevenhollidge@hotmail.com> |
---|---|
date | Sat, 05 May 2012 13:29:56 +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(GridLength), typeof(double))] public sealed class GridLengthToDoubleConverter : IValueConverter { public object Convert(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; } } public object ConvertBack(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); } } } } ;