From 2f67a6d8d19dd85e2284ebd274b752b4c9d0a839 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Tue, 27 Oct 2015 21:41:50 +0100 Subject: [PATCH] Define FocusAdorner in XAML. --- .../XamlTestApplicationPcl/FocusAdorner.paml | 9 +++++++++ .../XamlTestApplicationPcl/XamlTestApp.paml | 1 + .../XamlTestApplicationPcl.csproj | 3 +++ .../Context/PerspexObjectAssembler.cs | 8 +++++--- .../Perspex.Markup.Xaml.csproj | 1 + .../Templates/ControlTemplate.cs | 1 - .../Templates/FocusAdornerTemplate.cs | 19 +++++++++++++++++++ .../Primitives/TemplatedControl.cs | 16 ++++++++-------- 8 files changed, 46 insertions(+), 12 deletions(-) create mode 100644 samples/XamlTestApplicationPcl/FocusAdorner.paml create mode 100644 src/Markup/Perspex.Markup.Xaml/Templates/FocusAdornerTemplate.cs diff --git a/samples/XamlTestApplicationPcl/FocusAdorner.paml b/samples/XamlTestApplicationPcl/FocusAdorner.paml new file mode 100644 index 0000000000..84ef90078b --- /dev/null +++ b/samples/XamlTestApplicationPcl/FocusAdorner.paml @@ -0,0 +1,9 @@ + \ No newline at end of file diff --git a/samples/XamlTestApplicationPcl/XamlTestApp.paml b/samples/XamlTestApplicationPcl/XamlTestApp.paml index 2bd6b163c1..d3aa90faff 100644 --- a/samples/XamlTestApplicationPcl/XamlTestApp.paml +++ b/samples/XamlTestApplicationPcl/XamlTestApp.paml @@ -2,6 +2,7 @@ xmlns="https://github.com/perspex" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> + diff --git a/samples/XamlTestApplicationPcl/XamlTestApplicationPcl.csproj b/samples/XamlTestApplicationPcl/XamlTestApplicationPcl.csproj index 8c61559dce..3a8a1da341 100644 --- a/samples/XamlTestApplicationPcl/XamlTestApplicationPcl.csproj +++ b/samples/XamlTestApplicationPcl/XamlTestApplicationPcl.csproj @@ -166,6 +166,9 @@ Designer + + Designer + Designer diff --git a/src/Markup/Perspex.Markup.Xaml/Context/PerspexObjectAssembler.cs b/src/Markup/Perspex.Markup.Xaml/Context/PerspexObjectAssembler.cs index 2e3f6a2f9f..1f4427f7e7 100644 --- a/src/Markup/Perspex.Markup.Xaml/Context/PerspexObjectAssembler.cs +++ b/src/Markup/Perspex.Markup.Xaml/Context/PerspexObjectAssembler.cs @@ -4,6 +4,7 @@ using System; using OmniXaml; using OmniXaml.ObjectAssembler; +using Perspex.Controls; using Perspex.Markup.Xaml.Templates; namespace Perspex.Markup.Xaml.Context @@ -15,9 +16,10 @@ 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()); + mapping.Map(x => x.Content, new TemplateLoader()); + mapping.Map(x => x.Content, new TemplateLoader()); + mapping.Map(x => x.Content, new TemplateLoader()); + mapping.Map(x => x.Content, new TemplateLoader()); var assembler = new ObjectAssembler(wiringContext, new TopDownValueContext(), objectAssemblerSettings); _objectAssembler = new TemplateHostingObjectAssembler(assembler, mapping); diff --git a/src/Markup/Perspex.Markup.Xaml/Perspex.Markup.Xaml.csproj b/src/Markup/Perspex.Markup.Xaml/Perspex.Markup.Xaml.csproj index c010099026..e598455715 100644 --- a/src/Markup/Perspex.Markup.Xaml/Perspex.Markup.Xaml.csproj +++ b/src/Markup/Perspex.Markup.Xaml/Perspex.Markup.Xaml.csproj @@ -240,6 +240,7 @@ + diff --git a/src/Markup/Perspex.Markup.Xaml/Templates/ControlTemplate.cs b/src/Markup/Perspex.Markup.Xaml/Templates/ControlTemplate.cs index 1136c63858..3ce81dc266 100644 --- a/src/Markup/Perspex.Markup.Xaml/Templates/ControlTemplate.cs +++ b/src/Markup/Perspex.Markup.Xaml/Templates/ControlTemplate.cs @@ -1,7 +1,6 @@ // 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.Metadata; diff --git a/src/Markup/Perspex.Markup.Xaml/Templates/FocusAdornerTemplate.cs b/src/Markup/Perspex.Markup.Xaml/Templates/FocusAdornerTemplate.cs new file mode 100644 index 0000000000..a1834d3b7c --- /dev/null +++ b/src/Markup/Perspex.Markup.Xaml/Templates/FocusAdornerTemplate.cs @@ -0,0 +1,19 @@ +// 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 Perspex.Controls; +using Perspex.Metadata; + +namespace Perspex.Markup.Xaml.Templates +{ + public class FocusAdornerTemplate : ITemplate + { + [Content] + public TemplateContent Content { get; set; } + + public IControl Build() + { + return Content.Load(); + } + } +} \ No newline at end of file diff --git a/src/Perspex.Controls/Primitives/TemplatedControl.cs b/src/Perspex.Controls/Primitives/TemplatedControl.cs index ae27b58a72..bbe9836e03 100644 --- a/src/Perspex.Controls/Primitives/TemplatedControl.cs +++ b/src/Perspex.Controls/Primitives/TemplatedControl.cs @@ -25,49 +25,49 @@ namespace Perspex.Controls.Primitives Border.BackgroundProperty.AddOwner(); /// - /// Defines the property. + /// Defines the property. /// public static readonly PerspexProperty BorderBrushProperty = Border.BorderBrushProperty.AddOwner(); /// - /// Defines the property. + /// Defines the property. /// public static readonly PerspexProperty BorderThicknessProperty = Border.BorderThicknessProperty.AddOwner(); /// - /// Defines the property. + /// Defines the property. /// public static readonly PerspexProperty FontFamilyProperty = TextBlock.FontFamilyProperty.AddOwner(); /// - /// Defines the property. + /// Defines the property. /// public static readonly PerspexProperty FontSizeProperty = TextBlock.FontSizeProperty.AddOwner(); /// - /// Defines the property. + /// Defines the property. /// public static readonly PerspexProperty FontStyleProperty = TextBlock.FontStyleProperty.AddOwner(); /// - /// Defines the property. + /// Defines the property. /// public static readonly PerspexProperty ForegroundProperty = TextBlock.ForegroundProperty.AddOwner(); /// - /// Defines the property. + /// Defines the property. /// public static readonly PerspexProperty PaddingProperty = Decorator.PaddingProperty.AddOwner(); /// - /// Defines the property. + /// Defines the property. /// public static readonly PerspexProperty TemplateProperty = PerspexProperty.Register("Template");