From 41f7c83cac8ddb29b77c1bbb51394b1377ca8452 Mon Sep 17 00:00:00 2001 From: donandren Date: Sat, 4 Mar 2017 14:03:50 +0200 Subject: [PATCH] Static and IconType converted integrated --- .../Converters/IconTypeConverter.cs | 12 ++++++++--- .../MarkupExtensions/StaticExtension.cs | 20 +++++++++++++++---- 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/src/Markup/Avalonia.Markup.Xaml/Converters/IconTypeConverter.cs b/src/Markup/Avalonia.Markup.Xaml/Converters/IconTypeConverter.cs index 6749d68260..5f71935e3a 100644 --- a/src/Markup/Avalonia.Markup.Xaml/Converters/IconTypeConverter.cs +++ b/src/Markup/Avalonia.Markup.Xaml/Converters/IconTypeConverter.cs @@ -38,7 +38,7 @@ namespace Avalonia.Markup.Xaml.Converters private WindowIcon CreateIconFromPath(ITypeDescriptorContext context, string path) { var uri = new Uri(path, UriKind.RelativeOrAbsolute); - var baseUri = GetBaseUri(context); + var baseUri = GetBaseUri(uri, context); var scheme = uri.IsAbsoluteUri ? uri.Scheme : "file"; switch (scheme) @@ -51,9 +51,14 @@ namespace Avalonia.Markup.Xaml.Converters } } - private Uri GetBaseUri(ITypeDescriptorContext context) + private Uri GetBaseUri(Uri uri, ITypeDescriptorContext context) { - throw new NotImplementedException(); + if (uri.IsAbsoluteUri) + { + return null; + } + + throw new NotImplementedException("Relative base uri Not implemented!"); //object result; //context.ParsingDictionary.TryGetValue("Uri", out result); //return result as Uri; @@ -63,6 +68,7 @@ namespace Avalonia.Markup.Xaml.Converters #else using OmniXaml.TypeConversion; + using System.Reflection; class IconTypeConverter : ITypeConverter { diff --git a/src/Markup/Avalonia.Markup.Xaml/MarkupExtensions/StaticExtension.cs b/src/Markup/Avalonia.Markup.Xaml/MarkupExtensions/StaticExtension.cs index c54ea90add..c97b3c0495 100644 --- a/src/Markup/Avalonia.Markup.Xaml/MarkupExtensions/StaticExtension.cs +++ b/src/Markup/Avalonia.Markup.Xaml/MarkupExtensions/StaticExtension.cs @@ -2,9 +2,6 @@ // Licensed under the MIT license. See licence.md file in the project root for full license information. using System; -using System.Linq; -using System.Reflection; - namespace Avalonia.Markup.Xaml.MarkupExtensions { @@ -13,10 +10,25 @@ namespace Avalonia.Markup.Xaml.MarkupExtensions //TODO: check do we need something more than std Portable.xaml static?? public class StaticExtension : Portable.Xaml.Markup.StaticExtension { + public StaticExtension() + { + } + public StaticExtension(string member) + : base(member) + { + } + + public override object ProvideValue(IServiceProvider serviceProvider) + { + return base.ProvideValue(serviceProvider); + } } #else + + using System.Linq; + using System.Reflection; using OmniXaml; using Glass.Core; @@ -77,7 +89,7 @@ namespace Avalonia.Markup.Xaml.MarkupExtensions if (result is PropertyInfo) { var property = ((PropertyInfo)result); - + if (property.GetMethod.IsStatic) { return ((PropertyInfo)result).GetValue(null);