Exemple #1
0
        static ValueConverters()
        {
            PrimitiveConverterFactory.RegisterConverter(new ColorSolidColorBrushConverter());
            PrimitiveConverterFactory.RegisterConverter(new ColorBrushConverter());
            PrimitiveConverterFactory.RegisterConverter(new StringBrushConverter());
            PrimitiveConverterFactory.RegisterConverter(new StringSolidColorBrushConverter());
            PrimitiveConverterFactory.RegisterConverter(new SolidColorBrushColorConverter());
            PrimitiveConverterFactory.RegisterConverter(new SolidColorBrushStringConverter());
            PrimitiveConverterFactory.RegisterConverter(new ColorStringConverter());
            PrimitiveConverterFactory.RegisterConverter(new StringColorConverter());

            PrimitiveConverterFactory.RegisterConverter(new StringGeometryConverter());

            PrimitiveConverterFactory.RegisterConverter(new StringFontFamilyConverter());
            PrimitiveConverterFactory.RegisterConverter(new StringFontStyleConverter());
            PrimitiveConverterFactory.RegisterConverter(new StringFontWeightConverter());
            PrimitiveConverterFactory.RegisterConverter(new StringFontStretchConverter());

            PrimitiveConverterFactory.RegisterConverter(new FontFamilyStringConverter());
            PrimitiveConverterFactory.RegisterConverter(new FontStyleStringConverter());
            PrimitiveConverterFactory.RegisterConverter(new FontWeightStringConverter());
            PrimitiveConverterFactory.RegisterConverter(new GridLengthDoubleConverter());
            PrimitiveConverterFactory.RegisterConverter(new DoubleGridLengthConverter());

            ColorBrushConverter    = CreateXamlIValueConverter <Color, SolidColorBrush>();
            ColorStringConverter   = CreateXamlIValueConverter <Color, string>();
            StringDoubleConverter  = CreateXamlIValueConverter <string, double>();
            StringIntConverter     = CreateXamlIValueConverter <string, int>();
            StringShortConverter   = CreateXamlIValueConverter <string, short>();
            StringDecimalConverter = CreateXamlIValueConverter <string, decimal>();
        }
Exemple #2
0
        private static DelegateConverter CreateXamlIValueConverter <TInput, TOutput>()
        {
            var directConverter  = PrimitiveConverterFactory.GetConverter <TInput, TOutput>();
            var reverseConverter = PrimitiveConverterFactory.GetConverter <TOutput, TInput>();

            if (directConverter == null || reverseConverter == null)
            {
                throw new Exception("Could not find appropriate converter");
            }

            return(new DelegateConverter((value, type) => SafeConverter(value, type, directConverter),
                                         (value, type) => SafeConverter(value, type, reverseConverter)));
        }
Exemple #3
0
        public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
        {
            var targetType = typeof(TTo);

            if (value == null)
            {
                return(RuntimeUtils.CreateDefaultValue(targetType));
            }

            var sourceType = value.GetType();

            return(PrimitiveConverterFactory.GetConverter(sourceType, targetType).Convert(value));
        }
Exemple #4
0
        public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
        {
            var primitiveConverter = PrimitiveConverterFactory.GetConverter(sourceType, typeof(TTo));

            return(primitiveConverter != null);
        }
Exemple #5
0
 public NegatedTryConvert TryGetNegatedTryConvert(Type sourceType, Type targetType, object defaultValue)
 {
     return(PrimitiveConverterFactory.TryGetNegatedTryConvert(sourceType, targetType, defaultValue));
 }