Browse Source

Static and IconType converted integrated

pull/916/head
donandren 10 years ago
committed by Andrey Kunchev
parent
commit
41f7c83cac
  1. 12
      src/Markup/Avalonia.Markup.Xaml/Converters/IconTypeConverter.cs
  2. 20
      src/Markup/Avalonia.Markup.Xaml/MarkupExtensions/StaticExtension.cs

12
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
{

20
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);

Loading…
Cancel
Save