Wpf URI和xaml中的资源

Wpf URI和xaml中的资源,wpf,xaml,resources,uri,imagesource,Wpf,Xaml,Resources,Uri,Imagesource,我有一个类充当视图的视图模型。该类具有ImageSource类型的公共成员。现在我需要的是将属性类型更改为uri(或字符串)。 但问题是,我找不到一种方法从具有URI的资源字典访问单个资源 e、 g.目前我正在做这样的事情: VectorResourcesDictionary=newResourceDictionary(); Uri=新的Uri(“pack://application:,,,/assembly;组件/IconResources.xaml“,UriKind.Absolute); V

我有一个类充当视图的视图模型。该类具有ImageSource类型的公共成员。现在我需要的是将属性类型更改为uri(或字符串)。 但问题是,我找不到一种方法从具有URI的资源字典访问单个资源

e、 g.目前我正在做这样的事情:

VectorResourcesDictionary=newResourceDictionary();
Uri=新的Uri(“pack://application:,,,/assembly;组件/IconResources.xaml“,UriKind.Absolute);
VectorResourcesDictionary.Source=uri;
object rawResource=VectorResourcesDictionary[“VectorIcon.LeftArrowIcon”];
返回pickerSymbol=rawResource作为ImageSource;

现在,如何使用URI而不是ImageSource获得类似的结果?

很简单,只需将属性类型从ImageSource更改为URI即可:

public-Uri-PickerSymbol//我只是猜测属性名
{
得到
{
//将资源作为字符串而不是ImageSource获取
...
string uri=rawResource作为字符串
返回新的Uri(Uri);
}
}
在您的视图中,如果保留与PickerSymbol属性的绑定,Uri将自动转换为ImageSource

<Image Source="{Binding PickerSymbol}" />


我认为你用错误的方式做MVVM。与UI相关的图像、样式等应属于视图,而不是ViewModel。我建议您将它移到视图(xaml文件)中。是的,我知道它错了,这就是为什么我必须将ImageSource(ui元素)更改为简单的字符串或URI。问题是如何使用URI获取xaml中定义的简单资源。。。