我有一个应用程序可以动态加载带有用户控件的dll。在其中一个dll中,我有一个控件,显示一个按钮,当它被击中时,会弹出一个新窗口。一切都会很棒,但窗口没有出现......我得到的是“无法找到资源XXX.xaml”消息,其中包含定义弹出窗口的xaml名称。
弹出窗口是在一个绑定到按钮的命令中创建的:
private void onCmdSetIndexValidator(object _param) {
IIndex param = (IIndex)_param;
new IndexValidatorsEditor(param).Show();
}
有什么想法吗?
答案 0 :(得分:0)
Window中的资源需要针对它们所在的程序集进行范围限定。如果您在窗口(图像,页面等)中访问资产,则需要指定它来自的程序集(即使它来自自己的程序集)。如果您未指定程序集,WPF将假定资源来自正在执行的程序集(您的客户端应用程序)。
通过包URI定义程序集。示例:/nameOfAssembly;component/folder/background.png
查看原始异常的内部异常值也可能有所帮助。有时,这提供了有关哪些资源难以定位的线索。
答案 1 :(得分:0)
解决方案很简单......加载我的dll的代码是错误的 - 它使用 Assembly.LoadFile 而不是 Assembly.LoadFrom