引用程序集资源时XAML IntelliSense失效问题求助
解决WPF DLL资源字典XAML IntelliSense失效问题
我之前也碰到过一模一样的情况!项目运行起来完全正常,但设计时IntelliSense就是不认pack URI引用的资源字典,折腾了好一阵才搞定,给你几个亲测有效的解决步骤:
检查pack URI格式是否完全正确
正确的格式应该是:<ResourceDictionary Source="pack://application:,,,/YourDLLAssemblyName;component/RelativePathToYourResourceDictionary.xaml" />这里要注意:
YourDLLAssemblyName是DLL的程序集名称(不是文件名,和DLL项目的AssemblyName一致,可在项目属性->应用程序里查看)component后面是资源字典在DLL项目里的相对路径,比如资源放在Resources文件夹下,那路径就是Resources/YourDict.xaml
确认DLL项目的资源字典生成操作
在你的图形DLL项目中,右键资源字典文件->属性,把生成操作设置为Page(这是WPF资源文件的默认正确设置,确保资源被嵌入到程序集里,IntelliSense才能识别)添加设计时的DLL引用
有时候VS的设计器没法自动识别项目引用的DLL,你可以手动添加一次:- 在引用DLL的项目里,右键“引用”->“添加引用”
- 切换到“浏览”标签,找到你的图形DLL的Debug/Release版本(比如
bin/Debug/BIT.Graphic.dll),添加进去
清理重建+清除缓存
VS的缓存经常搞事情,按这个顺序操作:- 点击菜单栏的
Build->Clean Solution - 手动删除所有项目的
bin和obj文件夹 - 点击
Build->Rebuild Solution - 重启Visual Studio,或者在
工具->选项->文本编辑器->XAML->高级里点击“重置IntelliSense缓存”
- 点击菜单栏的
临时用绝对路径测试定位问题
如果上面的步骤都没用,你可以先把资源字典的Source改成绝对路径,比如:<ResourceDictionary Source="C:\Projects\BIT.Graphic\Resources\YourStyleDict.xaml" />如果IntelliSense这时正常工作,说明问题还是出在pack URI的格式或者DLL的嵌入方式上,再回头检查程序集名称和路径是否正确。
内容的提问来源于stack exchange,提问作者sfaust
相关产品推荐
相关产品推荐

