“无法再找到资源”

时间:2011-09-21 10:25:39

标签: c# wpf xaml user-controls

我有一个应用程序可以动态加载带有用户控件的dll。在其中一个dll中,我有一个控件,显示一个按钮,当它被击中时,会弹出一个新窗口。一切都会很棒,但窗口没有出现......我得到的是“无法找到资源XXX.xaml”消息,其中包含定义弹出窗口的xaml名称。

弹出窗口是在一个绑定到按钮的命令中创建的:

    private void onCmdSetIndexValidator(object _param) {
        IIndex param = (IIndex)_param;

        new IndexValidatorsEditor(param).Show();
    }

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

Window中的资源需要针对它们所在的程序集进行范围限定。如果您在窗口(图像,页面等)中访问资产,则需要指定它来自的程序集(即使它来自自己的程序集)。如果您未指定程序集,WPF将假定资源来自正在执行的程序集(您的客户端应用程序)。

通过包URI定义程序集。示例:/nameOfAssembly;component/folder/background.png

查看原始异常的内部异常值也可能有所帮助。有时,这提供了有关哪些资源难以定位的线索。

http://msdn.microsoft.com/en-us/library/aa970069.aspx

答案 1 :(得分:0)

解决方案很简单......加载我的dll的代码是错误的 - 它使用 Assembly.LoadFile 而不是 Assembly.LoadFrom