我是 WPF 的新手,遵循 MVVM 模式。试图创建 dll,我在 resourcedictionary 中定义了一些资源字符串,能够在 xaml 文件中访问它,但我需要在 viewmodel 中访问它。在网上搜索,发现有一种方法 TryFindResource() 但此方法在应用程序上下文中,我如何在视图模式下使用它?
谢谢
我是 WPF 的新手,遵循 MVVM 模式。试图创建 dll,我在 resourcedictionary 中定义了一些资源字符串,能够在 xaml 文件中访问它,但我需要在 viewmodel 中访问它。在网上搜索,发现有一种方法 TryFindResource() 但此方法在应用程序上下文中,我如何在视图模式下使用它?
谢谢
嗨,你可以有一个像下面这样的静态类,这个静态类将有你的 resourceDIctionary 的引用,通过它你可以从你的视图模型中访问资源字典中的资源。
internal static class SharedResourceDictionary
{
internal static ResourceDictionary SharedDictionary
{
get
{
if (_sharedDictionary == null)
{
try
{
System.Uri resourceLocater1 = new System.Uri(
string.Format("/{0};component/YourResourceDictionary.xaml",
"YourProject"), System.UriKind.Relative);
ResourceDictionary resourceDictionary = new ResourceDictionary
{
Source = resourceLocater1
};
_sharedDictionary = resourceDictionary;
}
catch (Exception e)
{
}
}
return _sharedDictionary;
}
}
private static ResourceDictionary _sharedDictionary;
}
您可以像这样从视图模型中获取资源。前任:
ResourceDictionary resourceDictionary = (ResourceDictionary)SharedResourceDictionary.SharedDictionary;
LinearGradientBrush brush = (LinearGradientBrush)resourceDictionary["ButtonNormalBackground"];