diff --git a/src/Markup/Avalonia.Markup.Xaml/Avalonia.Markup.Xaml.csproj b/src/Markup/Avalonia.Markup.Xaml/Avalonia.Markup.Xaml.csproj index 45280020c4..913eb76c77 100644 --- a/src/Markup/Avalonia.Markup.Xaml/Avalonia.Markup.Xaml.csproj +++ b/src/Markup/Avalonia.Markup.Xaml/Avalonia.Markup.Xaml.csproj @@ -60,6 +60,7 @@ + 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(); + } + } +}