diff --git a/src/Markup/Perspex.Markup.Xaml/Context/PerspexTypeFeatureProvider.cs b/src/Markup/Perspex.Markup.Xaml/Context/PerspexTypeFeatureProvider.cs
index 4f3d29929c..66e1d810f5 100644
--- a/src/Markup/Perspex.Markup.Xaml/Context/PerspexTypeFeatureProvider.cs
+++ b/src/Markup/Perspex.Markup.Xaml/Context/PerspexTypeFeatureProvider.cs
@@ -165,6 +165,7 @@ namespace Perspex.Markup.Xaml.Context
RegisterTypeConverter(typeof(RelativePoint), new RelativePointTypeConverter());
RegisterTypeConverter(typeof(RelativeRect), new RelativeRectTypeConverter());
RegisterTypeConverter(typeof(RowDefinitions), new RowDefinitionsTypeConverter());
+ RegisterTypeConverter(typeof(Size), new SizeTypeConverter());
RegisterTypeConverter(typeof(Selector), new SelectorTypeConverter());
RegisterTypeConverter(typeof(SolidColorBrush), new BrushTypeConverter());
RegisterTypeConverter(typeof(Thickness), new ThicknessTypeConverter());
diff --git a/src/Markup/Perspex.Markup.Xaml/Converters/SizeTypeConverter.cs b/src/Markup/Perspex.Markup.Xaml/Converters/SizeTypeConverter.cs
new file mode 100644
index 0000000000..ec6763c555
--- /dev/null
+++ b/src/Markup/Perspex.Markup.Xaml/Converters/SizeTypeConverter.cs
@@ -0,0 +1,32 @@
+// Copyright (c) The Perspex 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 Perspex.Markup.Xaml.Converters
+{
+ public class SizeTypeConverter : 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)
+ {
+ return Size.Parse((string)value, culture);
+ }
+
+ public object ConvertTo(IValueContext context, CultureInfo culture, object value, Type destinationType)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Markup/Perspex.Markup.Xaml/Perspex.Markup.Xaml.csproj b/src/Markup/Perspex.Markup.Xaml/Perspex.Markup.Xaml.csproj
index 0c003e4f75..0d694d2841 100644
--- a/src/Markup/Perspex.Markup.Xaml/Perspex.Markup.Xaml.csproj
+++ b/src/Markup/Perspex.Markup.Xaml/Perspex.Markup.Xaml.csproj
@@ -66,6 +66,7 @@
+
diff --git a/src/Perspex.SceneGraph/Size.cs b/src/Perspex.SceneGraph/Size.cs
index 83b49fc0da..648aaf6f6d 100644
--- a/src/Perspex.SceneGraph/Size.cs
+++ b/src/Perspex.SceneGraph/Size.cs
@@ -3,6 +3,7 @@
using System;
using System.Globalization;
+using System.Linq;
namespace Perspex
{
@@ -249,4 +250,4 @@ namespace Perspex
return string.Format(CultureInfo.InvariantCulture, "{0}, {1}", _width, _height);
}
}
-}
+}
\ No newline at end of file