diff --git a/samples/XamlTestApplication/XamlTestApplication.csproj b/samples/XamlTestApplication/XamlTestApplication.csproj
index d384db9372..42aaf4be21 100644
--- a/samples/XamlTestApplication/XamlTestApplication.csproj
+++ b/samples/XamlTestApplication/XamlTestApplication.csproj
@@ -104,6 +104,10 @@
{7062AE20-5DCC-4442-9645-8195BDECE63E}
Perspex.Diagnostics
+
+ {5fb2b005-0a7f-4dad-add4-3ed01444e63d}
+ Perspex.HtmlRenderer
+
{62024B2D-53EB-4638-B26B-85EEAA54866E}
Perspex.Input
diff --git a/samples/XamlTestApplicationPcl/Views/MainWindow.paml b/samples/XamlTestApplicationPcl/Views/MainWindow.paml
index 3dfac47f36..1d234dc657 100644
--- a/samples/XamlTestApplicationPcl/Views/MainWindow.paml
+++ b/samples/XamlTestApplicationPcl/Views/MainWindow.paml
@@ -1,106 +1,198 @@
+ Title="Perspex Test Application" Width="800" Height="600">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin venenatis dui quis libero suscipit tincidunt.
-
-
- Bold text.
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
@@ -114,8 +206,8 @@
-
-
+
+
diff --git a/samples/XamlTestApplicationPcl/XamlTestApplicationPcl.csproj b/samples/XamlTestApplicationPcl/XamlTestApplicationPcl.csproj
index 3cc33712f7..d924a00488 100644
--- a/samples/XamlTestApplicationPcl/XamlTestApplicationPcl.csproj
+++ b/samples/XamlTestApplicationPcl/XamlTestApplicationPcl.csproj
@@ -51,6 +51,9 @@
PreserveNewest
+
+ PreserveNewest
+
diff --git a/samples/XamlTestApplicationPcl/pattern.jpg b/samples/XamlTestApplicationPcl/pattern.jpg
new file mode 100644
index 0000000000..72b35e0692
Binary files /dev/null and b/samples/XamlTestApplicationPcl/pattern.jpg differ
diff --git a/src/Markup/Perspex.Markup.Xaml/Context/PerspexWiringContext.cs b/src/Markup/Perspex.Markup.Xaml/Context/PerspexWiringContext.cs
index 3e5b5c24c2..43e3916b2a 100644
--- a/src/Markup/Perspex.Markup.Xaml/Context/PerspexWiringContext.cs
+++ b/src/Markup/Perspex.Markup.Xaml/Context/PerspexWiringContext.cs
@@ -102,7 +102,8 @@ namespace Perspex.Markup.Xaml.Context
new TypeConverterRegistration(typeof(Thickness), new ThicknessTypeConverter()),
new TypeConverterRegistration(typeof(Selector), new SelectorTypeConverter()),
new TypeConverterRegistration(typeof(TimeSpan), new TimeSpanTypeConverter()),
- new TypeConverterRegistration(typeof(KeyGesture), new KeyGestureConverter())
+ new TypeConverterRegistration(typeof(KeyGesture), new KeyGestureConverter()),
+ new TypeConverterRegistration(typeof(Geometry), new GeometryTypeConverter()),
};
typeConverterProvider.AddAll(converters);
diff --git a/src/Markup/Perspex.Markup.Xaml/Converters/GeometryTypeConverter.cs b/src/Markup/Perspex.Markup.Xaml/Converters/GeometryTypeConverter.cs
new file mode 100644
index 0000000000..4c10c9b57c
--- /dev/null
+++ b/src/Markup/Perspex.Markup.Xaml/Converters/GeometryTypeConverter.cs
@@ -0,0 +1,30 @@
+namespace Perspex.Markup.Xaml.Converters
+{
+ using System;
+ using System.Globalization;
+ using Media;
+ using OmniXaml.TypeConversion;
+
+ public class GeometryTypeConverter : ITypeConverter
+ {
+ public bool CanConvertFrom(IXamlTypeConverterContext context, Type sourceType)
+ {
+ return sourceType == typeof(string);
+ }
+
+ public bool CanConvertTo(IXamlTypeConverterContext context, Type destinationType)
+ {
+ return false;
+ }
+
+ public object ConvertFrom(IXamlTypeConverterContext context, CultureInfo culture, object value)
+ {
+ return StreamGeometry.Parse((string)value);
+ }
+
+ public object ConvertTo(IXamlTypeConverterContext 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 d34c97c50f..91a8200062 100644
--- a/src/Markup/Perspex.Markup.Xaml/Perspex.Markup.Xaml.csproj
+++ b/src/Markup/Perspex.Markup.Xaml/Perspex.Markup.Xaml.csproj
@@ -44,6 +44,7 @@
+
diff --git a/src/Perspex.HtmlRenderer/Properties/AssemblyInfo.cs b/src/Perspex.HtmlRenderer/Properties/AssemblyInfo.cs
index 9ab512fab5..6a6ccd755a 100644
--- a/src/Perspex.HtmlRenderer/Properties/AssemblyInfo.cs
+++ b/src/Perspex.HtmlRenderer/Properties/AssemblyInfo.cs
@@ -2,6 +2,7 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
+using Perspex.Metadata;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
@@ -28,3 +29,5 @@ using System.Runtime.InteropServices;
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
+
+[assembly: XmlnsDefinition("https://github.com/perspex", "Perspex.Controls.Html")]
\ No newline at end of file
diff --git a/src/Perspex.SceneGraph/Media/Geometry.cs b/src/Perspex.SceneGraph/Media/Geometry.cs
index f8b20269ad..993d183391 100644
--- a/src/Perspex.SceneGraph/Media/Geometry.cs
+++ b/src/Perspex.SceneGraph/Media/Geometry.cs
@@ -8,7 +8,7 @@ namespace Perspex.Media
{
///
/// Defines a geometric shape.
- ///
+ ///
public abstract class Geometry : PerspexObject
{
///