2

我是 WPF 的新手,遵循 MVVM 模式。试图创建 dll,我在 resourcedictionary 中定义了一些资源字符串,能够在 xaml 文件中访问它,但我需要在 viewmodel 中访问它。在网上搜索,发现有一种方法 TryFindResource() 但此方法在应用程序上下文中,我如何在视图模式下使用它?

谢谢

4

1 回答 1

1

嗨,你可以有一个像下面这样的静态类,这个静态类将有你的 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"];
于 2014-06-11T05:08:43.460 回答