From 937fc21af4a68c61a3301cf3b2335996b2532397 Mon Sep 17 00:00:00 2001 From: danwalmsley Date: Mon, 22 Aug 2016 12:46:38 +0100 Subject: [PATCH] Added implementation of FontWeight TypeConverter. --- .../Context/AvaloniaTypeFeatureProvider.cs | 1 + .../Converters/FontWeightConverter.cs | 39 +++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 src/Markup/Avalonia.Markup.Xaml/Converters/FontWeightConverter.cs diff --git a/src/Markup/Avalonia.Markup.Xaml/Context/AvaloniaTypeFeatureProvider.cs b/src/Markup/Avalonia.Markup.Xaml/Context/AvaloniaTypeFeatureProvider.cs index 4396062e79..fcb5703f83 100644 --- a/src/Markup/Avalonia.Markup.Xaml/Context/AvaloniaTypeFeatureProvider.cs +++ b/src/Markup/Avalonia.Markup.Xaml/Context/AvaloniaTypeFeatureProvider.cs @@ -174,6 +174,7 @@ namespace Avalonia.Markup.Xaml.Context RegisterTypeConverter(typeof(Uri), new UriTypeConverter()); RegisterTypeConverter(typeof(Cursor), new CursorTypeConverter()); RegisterTypeConverter(typeof(WindowIcon), new IconTypeConverter()); + RegisterTypeConverter(typeof(FontWeight), new FontWeightConverter()); } } } \ No newline at end of file diff --git a/src/Markup/Avalonia.Markup.Xaml/Converters/FontWeightConverter.cs b/src/Markup/Avalonia.Markup.Xaml/Converters/FontWeightConverter.cs new file mode 100644 index 0000000000..00964ef043 --- /dev/null +++ b/src/Markup/Avalonia.Markup.Xaml/Converters/FontWeightConverter.cs @@ -0,0 +1,39 @@ +namespace Avalonia.Markup.Xaml.Converters +{ + using Avalonia.Media; + using OmniXaml.TypeConversion; + using System; + using System.Globalization; + + public class FontWeightConverter : ITypeConverter + { + public bool CanConvertFrom(IValueContext context, Type sourceType) + { + return sourceType == typeof(string); + } + + public bool CanConvertTo(IValueContext context, Type destinationType) + { + return false; + } + + public object ConvertFrom(IValueContext context, CultureInfo culture, object value) + { + FontWeight result; + + if (Enum.TryParse(value as string, out result)) + { + return result; + } + else + { + throw new ArgumentException("unable to convert parameter to FontWeight"); + } + } + + public object ConvertTo(IValueContext context, CultureInfo culture, object value, Type destinationType) + { + throw new NotImplementedException(); + } + } +}