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