4 using System.Globalization;
 
    6 using System.Windows.Data;
 
    8 using SiliconStudio.Presentation.MarkupExtensions;
 
   10 namespace SiliconStudio.Presentation.ValueConverters
 
   18     [ValueConversion(typeof(
double), typeof(Size))]
 
   22         public override object Convert(
object value, Type targetType, 
object parameter, CultureInfo culture)
 
   27                 scalar = System.Convert.ToDouble(value);
 
   31                 throw new ArgumentException(
"The value of this converter must be convertible to a double.", exception);
 
   34             if (!(parameter is Size))
 
   36                 throw new ArgumentException(
"The parameter of this converter must be an instance of the Size structure. Use {sskk:Size (arguments)} to construct one.");
 
   39             var 
size = (Size)parameter;
 
   40             var result = 
new Size(size.Width * scalar, size.Height * scalar);
 
   45         public override object ConvertBack(
object value, Type targetType, 
object parameter, CultureInfo culture)
 
   49                 throw new ArgumentException(
"The value of the ConvertBack method of this converter must be a an instance of the Size structure.");
 
   51             if (!(parameter is Size))
 
   53                 throw new ArgumentException(
"The parameter of the ConvertBack method of this converter must be a an instance of the Size structure.");
 
   55             var sizeValue = (Size)value;
 
   56             var sizeParameter = (Size)parameter;
 
   59             if (Math.Abs(sizeParameter.Width) > double.Epsilon)
 
   61                 scalar = sizeValue.Width / sizeParameter.Width;
 
   63             else if (Math.Abs(sizeParameter.Height) > double.Epsilon)
 
   65                 scalar = sizeValue.Height / sizeParameter.Height;
 
   68             return System.Convert.ChangeType(scalar, targetType);
 
override object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
This converter will convert a double value to a Size structure. A Size must be passed as a parameter ...
override object Convert(object value, Type targetType, object parameter, CultureInfo culture)
_In_ size_t _In_ size_t size