Browse Source

initial implementation of type converters

pull/916/head
donandren 10 years ago
committed by Andrey Kunchev
parent
commit
3e3285c497
  1. 40
      src/Markup/Avalonia.Markup.Xaml/Converters/AvaloniaListTypeConverter.cs
  2. 25
      src/Markup/Avalonia.Markup.Xaml/Converters/ClassesTypeConverter.cs
  3. 24
      src/Markup/Avalonia.Markup.Xaml/Converters/ColorTypeConverter.cs
  4. 23
      src/Markup/Avalonia.Markup.Xaml/Converters/ColumnDefinitionsTypeConverter.cs
  5. 27
      src/Markup/Avalonia.Markup.Xaml/Converters/CursorTypeConverter.cs
  6. 7
      src/Markup/Avalonia.Markup.Xaml/Converters/DateTimeTypeConverter.cs
  7. 7
      src/Markup/Avalonia.Markup.Xaml/Converters/FontWeightConverter.cs
  8. 30
      src/Markup/Avalonia.Markup.Xaml/Converters/GeometryTypeConverter.cs
  9. 23
      src/Markup/Avalonia.Markup.Xaml/Converters/GridLengthTypeConverter.cs
  10. 67
      src/Markup/Avalonia.Markup.Xaml/Converters/IconTypeConverter.cs
  11. 26
      src/Markup/Avalonia.Markup.Xaml/Converters/KeyGestureConverter.cs
  12. 26
      src/Markup/Avalonia.Markup.Xaml/Converters/MemberSelectorTypeConverter.cs
  13. 23
      src/Markup/Avalonia.Markup.Xaml/Converters/PointTypeConverter.cs
  14. 31
      src/Markup/Avalonia.Markup.Xaml/Converters/PointsListTypeConverter.cs
  15. 23
      src/Markup/Avalonia.Markup.Xaml/Converters/RelativePointTypeConverter.cs
  16. 23
      src/Markup/Avalonia.Markup.Xaml/Converters/RelativeRectTypeConverter.cs
  17. 23
      src/Markup/Avalonia.Markup.Xaml/Converters/RowDefinitionsTypeConverter.cs
  18. 23
      src/Markup/Avalonia.Markup.Xaml/Converters/SizeTypeConverter.cs
  19. 23
      src/Markup/Avalonia.Markup.Xaml/Converters/ThicknessTypeConverter.cs
  20. 33
      src/Markup/Avalonia.Markup.Xaml/Converters/TimeSpanTypeConverter.cs
  21. 40
      src/Markup/Avalonia.Markup.Xaml/PortableXaml/AvaloniaDefaultTypeConverters.cs

40
src/Markup/Avalonia.Markup.Xaml/Converters/AvaloniaListTypeConverter.cs

@ -3,13 +3,48 @@
using System;
using System.Globalization;
using System.Linq;
using OmniXaml.TypeConversion;
using Avalonia.Collections;
using Avalonia.Utilities;
namespace Avalonia.Markup.Xaml.Converters
{
#if !OMNIXAML
using Portable.Xaml.ComponentModel;
public class AvaloniaListTypeConverter<T> : TypeConverter
{
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
{
return sourceType == typeof(string);
}
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
{
var result = new AvaloniaList<T>();
var values = ((string)value).Split(',');
foreach (var s in values)
{
object v;
if (TypeUtilities.TryConvert(typeof(T), s, culture, out v))
{
result.Add((T)v);
}
else
{
throw new InvalidCastException($"Could not convert '{s}' to {typeof(T)}.");
}
}
return result;
}
}
#else
using OmniXaml.TypeConversion;
public class AvaloniaListTypeConverter<T> : ITypeConverter
{
public bool CanConvertFrom(IValueContext context, Type sourceType)
@ -49,4 +84,5 @@ namespace Avalonia.Markup.Xaml.Converters
throw new NotImplementedException();
}
}
#endif
}

25
src/Markup/Avalonia.Markup.Xaml/Converters/ClassesTypeConverter.cs

@ -3,12 +3,31 @@
using System;
using System.Globalization;
using OmniXaml.TypeConversion;
using Avalonia.Controls;
using Avalonia.Styling;
namespace Avalonia.Markup.Xaml.Converters
{
#if !OMNIXAML
using Portable.Xaml.ComponentModel;
public class ClassesTypeConverter : TypeConverter
{
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
{
return sourceType == typeof(string);
}
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
{
return new Classes(((string)value).Split(' '));
}
}
#else
using OmniXaml.TypeConversion;
public class ClassesTypeConverter : ITypeConverter
{
public bool CanConvertFrom(IValueContext context, Type sourceType)
@ -31,4 +50,6 @@ namespace Avalonia.Markup.Xaml.Converters
throw new NotImplementedException();
}
}
#endif
}

24
src/Markup/Avalonia.Markup.Xaml/Converters/ColorTypeConverter.cs

@ -3,11 +3,31 @@
using System;
using System.Globalization;
using OmniXaml.TypeConversion;
using Avalonia.Media;
namespace Avalonia.Markup.Xaml.Converters
{
#if !OMNIXAML
using Portable.Xaml.ComponentModel;
public class ColorTypeConverter : TypeConverter
{
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
{
return sourceType == typeof(string);
}
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
{
return Color.Parse((string)value);
}
}
#else
using OmniXaml.TypeConversion;
public class ColorTypeConverter : ITypeConverter
{
public bool CanConvertFrom(IValueContext context, Type sourceType)
@ -30,4 +50,6 @@ namespace Avalonia.Markup.Xaml.Converters
throw new NotImplementedException();
}
}
#endif
}

23
src/Markup/Avalonia.Markup.Xaml/Converters/ColumnDefinitionsTypeConverter.cs

@ -3,11 +3,31 @@
using System;
using System.Globalization;
using OmniXaml.TypeConversion;
using Avalonia.Controls;
namespace Avalonia.Markup.Xaml.Converters
{
#if !OMNIXAML
using Portable.Xaml.ComponentModel;
public class ColumnDefinitionsTypeConverter : TypeConverter
{
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
{
return sourceType == typeof(string);
}
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
{
return new ColumnDefinitions((string)value);
}
}
#else
using OmniXaml.TypeConversion;
public class ColumnDefinitionsTypeConverter : ITypeConverter
{
public bool CanConvertFrom(IValueContext context, Type sourceType)
@ -30,4 +50,5 @@ namespace Avalonia.Markup.Xaml.Converters
throw new NotImplementedException();
}
}
#endif
}

27
src/Markup/Avalonia.Markup.Xaml/Converters/CursorTypeConverter.cs

@ -3,13 +3,32 @@
using System;
using System.Globalization;
using OmniXaml.TypeConversion;
using Avalonia.Input;
using Avalonia.Media.Imaging;
using Avalonia.Platform;
namespace Avalonia.Markup.Xaml.Converters
{
#if !OMNIXAML
using Portable.Xaml.ComponentModel;
public class CursorTypeConverter : TypeConverter
{
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
{
return sourceType == typeof(string);
}
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
{
var cursor = (StandardCursorType)Enum.Parse(typeof(StandardCursorType), ((string)value).Trim(), true);
return new Cursor(cursor);
}
}
#else
using OmniXaml.TypeConversion;
public class CursorTypeConverter : ITypeConverter
{
public bool CanConvertFrom(IValueContext context, Type sourceType)
@ -33,4 +52,6 @@ namespace Avalonia.Markup.Xaml.Converters
throw new NotImplementedException();
}
}
#endif
}

7
src/Markup/Avalonia.Markup.Xaml/Converters/DateTimeTypeConverter.cs

@ -1,9 +1,13 @@
using OmniXaml.TypeConversion;
// Copyright (c) The Avalonia Project. All rights reserved.
// Licensed under the MIT license. See licence.md file in the project root for full license information.
using System;
using System.Globalization;
using OmniXaml.TypeConversion;
namespace Avalonia.Markup.Xaml.Converters
{
#if OMNIXAML
public class DateTimeTypeConverter : ITypeConverter
{
public object ConvertFrom(IValueContext context, CultureInfo culture, object value)
@ -55,4 +59,5 @@ namespace Avalonia.Markup.Xaml.Converters
return sourceType == typeof(string);
}
}
#endif
}

7
src/Markup/Avalonia.Markup.Xaml/Converters/FontWeightConverter.cs

@ -1,5 +1,9 @@
namespace Avalonia.Markup.Xaml.Converters
// Copyright (c) The Avalonia Project. All rights reserved.
// Licensed under the MIT license. See licence.md file in the project root for full license information.
namespace Avalonia.Markup.Xaml.Converters
{
#if OMNIXAML
using Avalonia.Media;
using OmniXaml.TypeConversion;
using System;
@ -36,4 +40,5 @@
throw new NotImplementedException();
}
}
#endif
}

30
src/Markup/Avalonia.Markup.Xaml/Converters/GeometryTypeConverter.cs

@ -1,8 +1,31 @@
// Copyright (c) The Avalonia Project. All rights reserved.
// Licensed under the MIT license. See licence.md file in the project root for full license information.
using System;
using System.Globalization;
using Avalonia.Media;
namespace Avalonia.Markup.Xaml.Converters
{
using System;
using System.Globalization;
using Media;
#if !OMNIXAML
using Portable.Xaml.ComponentModel;
public class GeometryTypeConverter : TypeConverter
{
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
{
return sourceType == typeof(string);
}
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
{
return StreamGeometry.Parse((string)value);
}
}
#else
using OmniXaml.TypeConversion;
public class GeometryTypeConverter : ITypeConverter
@ -27,4 +50,5 @@ namespace Avalonia.Markup.Xaml.Converters
throw new NotImplementedException();
}
}
#endif
}

23
src/Markup/Avalonia.Markup.Xaml/Converters/GridLengthTypeConverter.cs

@ -3,11 +3,31 @@
using System;
using System.Globalization;
using OmniXaml.TypeConversion;
using Avalonia.Controls;
namespace Avalonia.Markup.Xaml.Converters
{
#if !OMNIXAML
using Portable.Xaml.ComponentModel;
public class GridLengthTypeConverter : TypeConverter
{
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
{
return sourceType == typeof(string);
}
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
{
return GridLength.Parse((string)value, culture);
}
}
#else
using OmniXaml.TypeConversion;
public class GridLengthTypeConverter : ITypeConverter
{
public bool CanConvertFrom(IValueContext context, Type sourceType)
@ -30,4 +50,5 @@ namespace Avalonia.Markup.Xaml.Converters
throw new NotImplementedException();
}
}
#endif
}

67
src/Markup/Avalonia.Markup.Xaml/Converters/IconTypeConverter.cs

@ -1,17 +1,69 @@
using System;
using System.Collections.Generic;
// Copyright (c) The Avalonia Project. All rights reserved.
// Licensed under the MIT license. See licence.md file in the project root for full license information.
using System;
using System.Globalization;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using Avalonia.Controls;
using Avalonia.Media.Imaging;
using Avalonia.Platform;
using OmniXaml.TypeConversion;
namespace Avalonia.Markup.Xaml.Converters
{
#if !OMNIXAML
using Portable.Xaml.ComponentModel;
public class IconTypeConverter : TypeConverter
{
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
{
return sourceType == typeof(string);
}
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
{
var path = value as string;
if (path != null)
{
return CreateIconFromPath(context, path);
}
var bitmap = value as IBitmap;
if (bitmap != null)
{
return new WindowIcon(bitmap);
}
throw new NotSupportedException();
}
private WindowIcon CreateIconFromPath(ITypeDescriptorContext context, string path)
{
var uri = new Uri(path, UriKind.RelativeOrAbsolute);
var baseUri = GetBaseUri(context);
var scheme = uri.IsAbsoluteUri ? uri.Scheme : "file";
switch (scheme)
{
case "file":
return new WindowIcon(path);
default:
var assets = AvaloniaLocator.Current.GetService<IAssetLoader>();
return new WindowIcon(assets.Open(uri, baseUri));
}
}
private Uri GetBaseUri(ITypeDescriptorContext context)
{
throw new NotImplementedException();
//object result;
//context.ParsingDictionary.TryGetValue("Uri", out result);
//return result as Uri;
}
}
#else
using OmniXaml.TypeConversion;
class IconTypeConverter : ITypeConverter
{
public bool CanConvertFrom(IValueContext context, Type sourceType)
@ -67,4 +119,5 @@ namespace Avalonia.Markup.Xaml.Converters
return result as Uri;
}
}
#endif
}

26
src/Markup/Avalonia.Markup.Xaml/Converters/KeyGestureConverter.cs

@ -1,10 +1,33 @@
// Copyright (c) The Avalonia Project. All rights reserved.
// Licensed under the MIT license. See licence.md file in the project root for full license information.
using System;
using System.Globalization;
using OmniXaml.TypeConversion;
using Avalonia.Input;
namespace Avalonia.Markup.Xaml.Converters
{
#if !OMNIXAML
using Portable.Xaml.ComponentModel;
public class KeyGestureConverter : TypeConverter
{
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
{
return sourceType == typeof(string);
}
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
{
return KeyGesture.Parse((string)value);
}
}
#else
using OmniXaml.TypeConversion;
class KeyGestureConverter : ITypeConverter
{
public bool CanConvertFrom(IValueContext context, Type sourceType)
@ -27,4 +50,5 @@ namespace Avalonia.Markup.Xaml.Converters
throw new NotImplementedException();
}
}
#endif
}

26
src/Markup/Avalonia.Markup.Xaml/Converters/MemberSelectorTypeConverter.cs

@ -3,11 +3,34 @@
using System;
using System.Globalization;
using OmniXaml.TypeConversion;
using Avalonia.Markup.Xaml.Templates;
namespace Avalonia.Markup.Xaml.Converters
{
#if !OMNIXAML
using Portable.Xaml.ComponentModel;
public class MemberSelectorTypeConverter : TypeConverter
{
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
{
return sourceType == typeof(string);
}
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
{
return new MemberSelector
{
MemberName = (string)value,
};
}
}
#else
using OmniXaml.TypeConversion;
public class MemberSelectorTypeConverter : ITypeConverter
{
public bool CanConvertFrom(IValueContext context, Type sourceType)
@ -33,4 +56,5 @@ namespace Avalonia.Markup.Xaml.Converters
throw new NotImplementedException();
}
}
#endif
}

23
src/Markup/Avalonia.Markup.Xaml/Converters/PointTypeConverter.cs

@ -3,10 +3,30 @@
using System;
using System.Globalization;
using OmniXaml.TypeConversion;
namespace Avalonia.Markup.Xaml.Converters
{
#if !OMNIXAML
using Portable.Xaml.ComponentModel;
public class PointTypeConverter : TypeConverter
{
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
{
return sourceType == typeof(string);
}
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
{
return Point.Parse((string)value, culture);
}
}
#else
using OmniXaml.TypeConversion;
public class PointTypeConverter : ITypeConverter
{
public bool CanConvertFrom(IValueContext context, Type sourceType)
@ -29,4 +49,5 @@ namespace Avalonia.Markup.Xaml.Converters
throw new NotImplementedException();
}
}
#endif
}

31
src/Markup/Avalonia.Markup.Xaml/Converters/PointsListTypeConverter.cs

@ -4,10 +4,38 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using OmniXaml.TypeConversion;
namespace Avalonia.Markup.Xaml.Converters
{
#if !OMNIXAML
using Portable.Xaml.ComponentModel;
public class PointsListTypeConverter : TypeConverter
{
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
{
return sourceType == typeof(string);
}
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
{
string strValue = (string)value;
string[] pointStrs = strValue.Split(new[] { ' ', '\t', '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
var result = new List<Point>(pointStrs.Length);
foreach (var pointStr in pointStrs)
{
result.Add(Point.Parse(pointStr, culture));
}
return result;
}
}
#else
using OmniXaml.TypeConversion;
public class PointsListTypeConverter : ITypeConverter
{
public bool CanConvertFrom(IValueContext context, Type sourceType)
@ -37,4 +65,5 @@ namespace Avalonia.Markup.Xaml.Converters
throw new NotImplementedException();
}
}
#endif
}

23
src/Markup/Avalonia.Markup.Xaml/Converters/RelativePointTypeConverter.cs

@ -3,10 +3,30 @@
using System;
using System.Globalization;
using OmniXaml.TypeConversion;
namespace Avalonia.Markup.Xaml.Converters
{
#if !OMNIXAML
using Portable.Xaml.ComponentModel;
public class RelativePointTypeConverter : TypeConverter
{
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
{
return sourceType == typeof(string);
}
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
{
return RelativePoint.Parse((string)value, culture);
}
}
#else
using OmniXaml.TypeConversion;
public class RelativePointTypeConverter : ITypeConverter
{
public bool CanConvertFrom(IValueContext context, Type sourceType)
@ -29,4 +49,5 @@ namespace Avalonia.Markup.Xaml.Converters
throw new NotImplementedException();
}
}
#endif
}

23
src/Markup/Avalonia.Markup.Xaml/Converters/RelativeRectTypeConverter.cs

@ -3,10 +3,30 @@
using System;
using System.Globalization;
using OmniXaml.TypeConversion;
namespace Avalonia.Markup.Xaml.Converters
{
#if !OMNIXAML
using Portable.Xaml.ComponentModel;
public class RelativeRectTypeConverter : TypeConverter
{
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
{
return sourceType == typeof(string);
}
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
{
return RelativeRect.Parse((string)value, culture);
}
}
#else
using OmniXaml.TypeConversion;
public class RelativeRectTypeConverter : ITypeConverter
{
public bool CanConvertFrom(IValueContext context, Type sourceType)
@ -29,4 +49,5 @@ namespace Avalonia.Markup.Xaml.Converters
throw new NotImplementedException();
}
}
#endif
}

23
src/Markup/Avalonia.Markup.Xaml/Converters/RowDefinitionsTypeConverter.cs

@ -3,11 +3,31 @@
using System;
using System.Globalization;
using OmniXaml.TypeConversion;
using Avalonia.Controls;
namespace Avalonia.Markup.Xaml.Converters
{
#if !OMNIXAML
using Portable.Xaml.ComponentModel;
public class RowDefinitionsTypeConverter : TypeConverter
{
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
{
return sourceType == typeof(string);
}
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
{
return new RowDefinitions((string)value);
}
}
#else
using OmniXaml.TypeConversion;
public class RowDefinitionsTypeConverter : ITypeConverter
{
public bool CanConvertFrom(IValueContext context, Type sourceType)
@ -30,4 +50,5 @@ namespace Avalonia.Markup.Xaml.Converters
throw new NotImplementedException();
}
}
#endif
}

23
src/Markup/Avalonia.Markup.Xaml/Converters/SizeTypeConverter.cs

@ -3,10 +3,30 @@
using System;
using System.Globalization;
using OmniXaml.TypeConversion;
namespace Avalonia.Markup.Xaml.Converters
{
#if !OMNIXAML
using Portable.Xaml.ComponentModel;
public class SizeTypeConverter : TypeConverter
{
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
{
return sourceType == typeof(string);
}
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
{
return Size.Parse((string)value, culture);
}
}
#else
using OmniXaml.TypeConversion;
public class SizeTypeConverter : ITypeConverter
{
public bool CanConvertFrom(IValueContext context, Type sourceType)
@ -29,4 +49,5 @@ namespace Avalonia.Markup.Xaml.Converters
throw new NotImplementedException();
}
}
#endif
}

23
src/Markup/Avalonia.Markup.Xaml/Converters/ThicknessTypeConverter.cs

@ -3,10 +3,30 @@
using System;
using System.Globalization;
using OmniXaml.TypeConversion;
namespace Avalonia.Markup.Xaml.Converters
{
#if !OMNIXAML
using Portable.Xaml.ComponentModel;
public class ThicknessTypeConverter : TypeConverter
{
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
{
return sourceType == typeof(string);
}
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
{
return Thickness.Parse((string)value, culture);
}
}
#else
using OmniXaml.TypeConversion;
public class ThicknessTypeConverter : ITypeConverter
{
public bool CanConvertFrom(IValueContext context, Type sourceType)
@ -29,4 +49,5 @@ namespace Avalonia.Markup.Xaml.Converters
throw new NotImplementedException();
}
}
#endif
}

33
src/Markup/Avalonia.Markup.Xaml/Converters/TimeSpanTypeConverter.cs

@ -3,11 +3,39 @@
using System;
using System.Globalization;
using OmniXaml.TypeConversion;
using Avalonia.Media;
namespace Avalonia.Markup.Xaml.Converters
{
#if !OMNIXAML
using Portable.Xaml.ComponentModel;
public class TimeSpanTypeConverter : Portable.Xaml.ComponentModel.TimeSpanConverter
{
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
{
return base.CanConvertFrom(context, sourceType);
}
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
{
var valueStr = (string)value;
if (!valueStr.Contains(":"))
{
// shorthand seconds format (ie. "0.25")
var secs = double.Parse(valueStr, CultureInfo.InvariantCulture);
return TimeSpan.FromSeconds(secs);
}
return base.ConvertFrom(context, culture, value);
}
}
#else
using OmniXaml.TypeConversion;
using Avalonia.Media;
public class TimeSpanTypeConverter : ITypeConverter
{
public bool CanConvertFrom(IValueContext context, Type sourceType)
@ -38,4 +66,5 @@ namespace Avalonia.Markup.Xaml.Converters
throw new NotImplementedException();
}
}
#endif
}

40
src/Markup/Avalonia.Markup.Xaml/PortableXaml/AvaloniaDefaultTypeConverters.cs

@ -7,6 +7,10 @@ using Avalonia.Media;
using Avalonia.Media.Imaging;
using Avalonia.Styling;
using Portable.Xaml.ComponentModel;
using Avalonia.Controls;
using Avalonia.Input;
using Avalonia.Collections;
using Avalonia.Controls.Templates;
namespace Avalonia.Markup.Xaml.PortableXaml
{
@ -17,29 +21,29 @@ namespace Avalonia.Markup.Xaml.PortableXaml
//avalonia default converters
{ typeof(IBitmap), typeof(BitmapTypeConverter)},
{ typeof(IBrush), typeof(BrushTypeConverter) },
//{ typeof(Color), typeof(ColorTypeConverter) },
//{ typeof(Classes), typeof(ClassesTypeConverter) },
//{ typeof(ColumnDefinitions), typeof(ColumnDefinitionsTypeConverter) },
{ typeof(Color), typeof(ColorTypeConverter) },
{ typeof(Classes), typeof(ClassesTypeConverter) },
{ typeof(ColumnDefinitions), typeof(ColumnDefinitionsTypeConverter) },
//{ typeof(DateTime), typeof(DateTimeTypeConverter) },
//{ typeof(Geometry), typeof(GeometryTypeConverter) },
//{ typeof(GridLength), typeof(GridLengthTypeConverter) },
//{ typeof(KeyGesture), typeof(KeyGestureConverter) },
//{ typeof(AvaloniaList<double>), typeof(AvaloniaListTypeConverter<double>) },
//{ typeof(IMemberSelector), typeof(MemberSelectorTypeConverter) },
//{ typeof(Point), typeof(PointTypeConverter) },
//{ typeof(IList<Point>), typeof(PointsListTypeConverter) },
{ typeof(Geometry), typeof(GeometryTypeConverter) },
{ typeof(GridLength), typeof(GridLengthTypeConverter) },
{ typeof(KeyGesture), typeof(KeyGestureConverter) },
{ typeof(AvaloniaList<double>), typeof(AvaloniaListTypeConverter<double>) },
{ typeof(IMemberSelector), typeof(MemberSelectorTypeConverter) },
{ typeof(Point), typeof(PointTypeConverter) },
{ typeof(IList<Point>), typeof(PointsListTypeConverter) },
{ typeof(AvaloniaProperty), typeof(AvaloniaPropertyTypeConverter) },
//{ typeof(RelativePoint), typeof(RelativePointTypeConverter) },
//{ typeof(RelativeRect), typeof(RelativeRectTypeConverter) },
//{ typeof(RowDefinitions), typeof(RowDefinitionsTypeConverter) },
//{ typeof(Size), typeof(SizeTypeConverter) },
{ typeof(RelativePoint), typeof(RelativePointTypeConverter) },
{ typeof(RelativeRect), typeof(RelativeRectTypeConverter) },
{ typeof(RowDefinitions), typeof(RowDefinitionsTypeConverter) },
{ typeof(Size), typeof(SizeTypeConverter) },
{ typeof(Selector), typeof(SelectorTypeConverter)},
{ typeof(SolidColorBrush), typeof(BrushTypeConverter) },
//{ typeof(Thickness), typeof(ThicknessTypeConverter) },
//{ typeof(TimeSpan), typeof(TimeSpanTypeConverter) },
{ typeof(Thickness), typeof(ThicknessTypeConverter) },
{ typeof(TimeSpan), typeof(TimeSpanTypeConverter) },
//{ typeof(Uri), typeof(Converters.UriTypeConverter) },
//{ typeof(Cursor), typeof(CursorTypeConverter) },
//{ typeof(WindowIcon), typeof(IconTypeConverter) },
{ typeof(Cursor), typeof(CursorTypeConverter) },
{ typeof(WindowIcon), typeof(IconTypeConverter) },
//{ typeof(FontWeight), typeof(FontWeightConverter) },
};

Loading…
Cancel
Save