Я хочу определить URI в файлах ресурсов и использовать их на ApplicationBar . Я сделал это как первый ответ на следующий вопрос:
URI изображения WP7 как StaticResource
любит:
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=System">
<sys:Uri x:Key="MenuButton1">/Images/button1.png</sys:Uri>
<sys:Uri x:Key="MenuButton2">/Images/button2.png</sys:Uri>
</ResourceDictionary>
Но у меня это не работает, файл xaml не может быть проанализирован.
А потом я нашел другое решение, расширяющее класс StaticResourceExtension, см. Последний ответ на следующий вопрос:
Возможно ли предоставить преобразователь типа для статического ресурса в WPF?
любит:
public class MyStaticResourceExtension : StaticResourceExtension
{
public IValueConverter Converter { get; set; }
public object ConverterParameter { get; set; }
public MyStaticResourceExtension()
{
}
public MyStaticResourceExtension(object resourceKey)
: base(resourceKey)
{
}
public override object ProvideValue(IServiceProvider serviceProvider)
{
object value = base.ProvideValue(serviceProvider);
if (Converter != null)
{
Type targetType = typeof(object);
IProvideValueTarget target = serviceProvider.GetService(typeof(IProvideValueTarget)) as IProvideValueTarget;
if (target != null)
{
DependencyProperty dp = target.TargetProperty as DependencyProperty;
if (dp != null)
{
targetType = dp.PropertyType;
}
else
{
PropertyInfo pi = target.TargetProperty as PropertyInfo;
if (pi != null)
{
targetType = pi.PropertyType;
}
}
}
value = Converter.Convert(value, targetType, ConverterParameter, CultureInfo.CurrentCulture);
}
return value;
}
}
Но я не знаю, можно ли его использовать на Windows Phone 7, и как это реализовать, может кто-нибудь дать мне несколько советов или пример? или помогите мне исправить первое решение. заранее спасибо.