diff --git a/samples/XamlTestApplicationPcl/XamlTestApp.paml b/samples/XamlTestApplicationPcl/XamlTestApp.paml
index 09d5504bfd..e08382ec1a 100644
--- a/samples/XamlTestApplicationPcl/XamlTestApp.paml
+++ b/samples/XamlTestApplicationPcl/XamlTestApp.paml
@@ -1,4 +1,21 @@
+
+
+
\ No newline at end of file
diff --git a/src/Markup/Perspex.Markup.Xaml/Context/PerspexObjectAssembler.cs b/src/Markup/Perspex.Markup.Xaml/Context/PerspexObjectAssembler.cs
index 25df85a3cc..2e3f6a2f9f 100644
--- a/src/Markup/Perspex.Markup.Xaml/Context/PerspexObjectAssembler.cs
+++ b/src/Markup/Perspex.Markup.Xaml/Context/PerspexObjectAssembler.cs
@@ -15,6 +15,7 @@ namespace Perspex.Markup.Xaml.Context
public PerspexObjectAssembler(IWiringContext wiringContext, ObjectAssemblerSettings objectAssemblerSettings = null)
{
var mapping = new DeferredLoaderMapping();
+ mapping.Map(template => template.Content, new TemplateLoader());
mapping.Map(template => template.Content, new TemplateLoader());
mapping.Map(template => template.Content, new TemplateLoader());
diff --git a/src/Markup/Perspex.Markup.Xaml/Context/PerspexWiringContext.cs b/src/Markup/Perspex.Markup.Xaml/Context/PerspexWiringContext.cs
index 3e5b5c24c2..e4b5697a96 100644
--- a/src/Markup/Perspex.Markup.Xaml/Context/PerspexWiringContext.cs
+++ b/src/Markup/Perspex.Markup.Xaml/Context/PerspexWiringContext.cs
@@ -115,11 +115,13 @@ namespace Perspex.Markup.Xaml.Context
var contentProperties = new Collection
{
new ContentPropertyDefinition(typeof(ContentControl), "Content"),
+ new ContentPropertyDefinition(typeof(ControlTemplate), "Content"),
new ContentPropertyDefinition(typeof(DataTemplate), "Content"),
new ContentPropertyDefinition(typeof(Decorator), "Child"),
new ContentPropertyDefinition(typeof(ItemsControl), "Items"),
new ContentPropertyDefinition(typeof(GradientBrush), "GradientStops"),
new ContentPropertyDefinition(typeof(Panel), "Children"),
+ new ContentPropertyDefinition(typeof(Setter), "Value"),
new ContentPropertyDefinition(typeof(Style), "Setters"),
new ContentPropertyDefinition(typeof(TextBlock), "Text"),
new ContentPropertyDefinition(typeof(TextBox), "Text"),
diff --git a/src/Markup/Perspex.Markup.Xaml/Perspex.Markup.Xaml.csproj b/src/Markup/Perspex.Markup.Xaml/Perspex.Markup.Xaml.csproj
index d34c97c50f..f7a1408f5d 100644
--- a/src/Markup/Perspex.Markup.Xaml/Perspex.Markup.Xaml.csproj
+++ b/src/Markup/Perspex.Markup.Xaml/Perspex.Markup.Xaml.csproj
@@ -229,6 +229,7 @@
+
diff --git a/src/Markup/Perspex.Markup.Xaml/Templates/ControlTemplate.cs b/src/Markup/Perspex.Markup.Xaml/Templates/ControlTemplate.cs
new file mode 100644
index 0000000000..bf6cb754e7
--- /dev/null
+++ b/src/Markup/Perspex.Markup.Xaml/Templates/ControlTemplate.cs
@@ -0,0 +1,21 @@
+// 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 Perspex.Controls;
+using Perspex.Controls.Templates;
+using Perspex.Styling;
+
+namespace Perspex.Markup.Xaml.Templates
+{
+ public class ControlTemplate : IControlTemplate
+ {
+ public Type TargetType { get; set; }
+ public TemplateContent Content { get; set; }
+
+ public IControl Build(ITemplatedControl control)
+ {
+ return Content.Load();
+ }
+ }
+}
\ No newline at end of file