From 53b909282660a81c5dd7c8d983f385b0159280ac Mon Sep 17 00:00:00 2001 From: Nikita Tsukanov Date: Sat, 12 Dec 2015 07:09:41 +0300 Subject: [PATCH] Added cursor type converter --- .../Context/PerspexWiringContext.cs | 1 + .../Converters/CursorTypeConverter.cs | 36 +++++++++++++++++++ .../Perspex.Markup.Xaml.csproj | 1 + 3 files changed, 38 insertions(+) create mode 100644 src/Markup/Perspex.Markup.Xaml/Converters/CursorTypeConverter.cs diff --git a/src/Markup/Perspex.Markup.Xaml/Context/PerspexWiringContext.cs b/src/Markup/Perspex.Markup.Xaml/Context/PerspexWiringContext.cs index 89203022a9..ab16826dc6 100644 --- a/src/Markup/Perspex.Markup.Xaml/Context/PerspexWiringContext.cs +++ b/src/Markup/Perspex.Markup.Xaml/Context/PerspexWiringContext.cs @@ -107,6 +107,7 @@ namespace Perspex.Markup.Xaml.Context new TypeConverterRegistration(typeof(Thickness), new ThicknessTypeConverter()), new TypeConverterRegistration(typeof(TimeSpan), new TimeSpanTypeConverter()), new TypeConverterRegistration(typeof(Uri), new UriTypeConverter()), + new TypeConverterRegistration(typeof(Cursor), new CursorTypeConverter()) }; typeConverterProvider.AddAll(converters); diff --git a/src/Markup/Perspex.Markup.Xaml/Converters/CursorTypeConverter.cs b/src/Markup/Perspex.Markup.Xaml/Converters/CursorTypeConverter.cs new file mode 100644 index 0000000000..2310d563c5 --- /dev/null +++ b/src/Markup/Perspex.Markup.Xaml/Converters/CursorTypeConverter.cs @@ -0,0 +1,36 @@ +// 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; +using Perspex.Input; +using Perspex.Media.Imaging; +using Perspex.Platform; + +namespace Perspex.Markup.Xaml.Converters +{ + public class CursorTypeConverter : 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) + { + var cursor = (StandardCursorType)Enum.Parse(typeof (StandardCursorType), ((string) value).Trim(), true); + return new Cursor(cursor); + } + + 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 9b8cb35162..484363cd85 100644 --- a/src/Markup/Perspex.Markup.Xaml/Perspex.Markup.Xaml.csproj +++ b/src/Markup/Perspex.Markup.Xaml/Perspex.Markup.Xaml.csproj @@ -39,6 +39,7 @@ Properties\SharedAssemblyInfo.cs +