我有一个解决方案TINI,其中有两个项目,一个项目为主程序MAIN,一个为即时通讯程序CHAT,现在我遇到这样一个问题:
我再主程序中引用了CHAT项目,同时也using了CHAT的名称空间,但是当我实例化CHAT中的任何一个窗体时,都会报错 在“System.Windows.StaticResourceExtension”上提供值时引发了异常。” ,我仔细的看了错误跟踪,发现是找不到某一个资源了,但是这个项目单独运行的时候是没有问题的,资源都正常,我想可能是我引用CHAT项目时其中的APP.xaml并没有引用过来或者被主程序的APP.xaml给覆盖了,所以导致了这个问题,但是我没有办法解决,希望大家能帮帮忙。
我通过一个按钮调用,代码为:
CHAT.MainWindow frm_mm = new CHAT.MainWindow();
frm_mm.Show();
WPF中跨项目调用窗体导致资源丢失,求解决
答案:2 悬赏:20 手机版
解决时间 2021-12-30 21:40
- 提问者网友:抽煙菂渘情少年
- 2021-12-30 07:51
最佳答案
- 五星知识达人网友:酒者煙囻
- 2021-12-30 08:25
的确,正如楼主所说,被引用的项目的app实效了。因为一个解决方案只允许有一个app,即控制全局样式的东东。你把chat的app里的样式都提取出来,放到一个ResourceDictionary里面。然后在主项目中引用(或者说合并)这个ResourceDictionary就行了。
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source= "/程序集A;Component/MYDictionary.xaml "/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
或直接引用
<Application.Resources>
<ResourceDictionary Source= "/程序集A;Component/MYDictionary.xaml "/>
</Application.Resources>
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source= "/程序集A;Component/MYDictionary.xaml "/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
或直接引用
<Application.Resources>
<ResourceDictionary Source= "/程序集A;Component/MYDictionary.xaml "/>
</Application.Resources>
全部回答
- 1楼网友:猎心人
- 2021-12-30 09:09
的确,正如楼主所说,被引用的项目的app实效了。因为一个解决方案只允许有一个app,即控制全局样式的东东。你把chat的app里的样式都提取出来,放到一个resourcedictionary里面。然后在主项目中引用(或者说合并)这个resourcedictionary就行了。
<application.resources>
<resourcedictionary>
<resourcedictionary.mergeddictionaries>
<resourcedictionary source= "/程序集a;component/mydictionary.xaml "/>
</resourcedictionary.mergeddictionaries>
</resourcedictionary>
</application.resources>
或直接引用
<application.resources>
<resourcedictionary source= "/程序集a;component/mydictionary.xaml "/>
</application.resources>
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯