2011-09-21 180 views
0

我有一个应用程序动态加载用户控件的DLL。在其中一个dll中,我有一个显示按钮的控件,当它弹出时,弹出一个新窗口。一切都将是巨大的,但窗口不会出现......我得到的是与定义窗口弹出XAML的名称“无法找到资源XXX.xaml”的消息。“无法找到资源”

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

     new IndexValidatorsEditor(param).Show(); 
    } 

任何想法:

弹出的窗口中,被绑定到该按钮命令创建的?

回答

0

解决办法很简单......里面装我的DLL是错误的代码 - 它使用Assembly.LoadFile,而不是Assembly.LoadFrom

0

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

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

它也可以帮忙看一下原始异常的内部异常值。有时,这提供了哪些资源有困难定位的线索。

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

+0

嗯......如果你是真的通过你自己添加资源。通常你不会手动添加XAML; D – SOReader