2012-05-02 42 views
0

要创建一个开放的,你平时做这样的事情如何加载外部组件资源WPF

Uri uri = new Uri("pack://application:,,,/Localization/Texts.en-GB.xaml"); 

从这里就可以,例如建立一个资源字典..

ResourceDictionary dictionary = new ResourceDictionary();    
dictionary.Source = uri; 

现在的问题是我如何做一个程序集(嵌入式资源)?

Assembly asmbly = Assembly.LoadFrom("this_is_in_another_place/texts.dll") 

这当然不到风度工作..

Uri uri = new Uri("/asmbly;component/Texts.en-GB.xaml"); 

回答

1

因为我无法得到它与开放的我们这里工作是一个可行的解决方案。

Assembly asmbly = Assembly.LoadFrom("this_is_in_another_place/texts.dll") 

ResourceDictionary dic; 

using (Stream s = asmbly.GetManifestResourceStream("Texts.en-GB.xaml")) 
{ 
    using (XmlReader reader = new XmlTextReader(s)) 
    { 
     dic = (ResourceDictionary)XamlReader.Load(reader); 
    } 
} 
+0

我认为同样的事情,使用'GetManifestResourceStream',但我一直在寻找一种方式,以开放的... –

+0

这样做是会更好。 – jrb