我在资源字典上做了一个XamlReader.Load方法,它有几个合并的字典。
FileStream s = new FileStream(@"/Resources/Xaml/MainXaml.xaml", FileMode.Open);
var obj = XamlReader.Load(s);
MainXaml然后加载一些其他的xaml文件:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="first.xaml"></ResourceDictionary>
<ResourceDictionary Source="second.xaml"></ResourceDictionary>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
每当我尝试这样做时,我都会遇到异常:
'设置属性'System.Windows.ResourceDictionary.Source'引发了一个异常。行号“4”和行位置“29”。 ---&GT; System.IO.IOException:Assembly.GetEntryAssembly()返回null。
设置Application.ResourceAssembly属性或使用pack:// application:,,, assemblyname; component / syntax指定要加载资源的程序集。
即使我尝试在源代码中包含程序集名称,错误也会持续
<ResourceDictionary Source="/MyApp;first.xaml"></ResourceDictionary>
答案 0 :(得分:1)
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/Assembly_Name;component/first.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
或者
FileStream s = new FileStream(@"pack://application:,,,/Assembly_Name;component/Xaml/MainXaml.xaml", FileMode.Open);