无法在字典中找到要加载的资源

时间:2017-01-28 11:14:29

标签: c# wpf xaml dictionary

我正在尝试在ResourceDictionary内加载一个xaml文件,我所做的是创建一个这样的字典:

ResourceDictionary dict = new ResourceDictionary();

然后:

dict.Source = new Uri("..\\Resources\\Languages\\en-EN.xaml", UriKind.Relative);

现在我有以下应用程序文件夹结构:

AppName
    Resources
         Languages
               en-EN.xaml 
               it-IT.xaml

不幸的是我收到了这个错误:

  

无法找到资源'resources / languages / en-en.xaml'

但资源存在,为什么会这样呢?

1 个答案:

答案 0 :(得分:1)

尝试使用包URI:

dict.Source = new Uri("pack://application:,,,/Resources/Languages/en-EN.xaml", UriKind.RelativeOrAbsolute);

并将Build Action属性设置为其默认值 Page

如果资源字典位于另一个程序集中,您还需要添加对此程序集的引用,并在包URI中指定它的名称:

dict.Source = new Uri("pack://application:,,,/TheNameOfTheAssembly;component/Resources/Languages/en-EN.xaml", UriKind.RelativeOrAbsolute);