在wpf项目中,用Image来显示资源图片,在界面是可以显示,但是在运行的时候却显示不出来。
<Image Source="/Reform.STBHQ.Common;component/Images/huaiy_0.png" Height="80" HorizontalAlignment="Left" Margin="80,0,0,0" Cursor="Hand" cm:Message.Attach="[MouseLeftButtonUp]=[RestoreDB_Click()]"></Image>
经过检查图片资源文件,发现是根目录中的图片生成方式不对,图片右键 属性->生成操作是内容,而不是Resource
所以要改为 生成操作为Resource。
生成操作设置为Resource,生成的时候资源将添加到程序集中。可以尝试将原有的图片删除,图片正常显示。将原有图片用新图片替换,仍显示原有图片。只有选择重新生成操作才能更新图片。
生成操作设置为内容,并不会添加至程序集,而且只有把资源放置在程序运行目录才能访问到资源。程序运行目录调试时是Debug目录,安装后就是程序的安装目录。与直接把资源放置在程序运行目录不同的是,添加Content资源文件,会向程序集(AssemblyAssociatedContentFile)中添加一个定制特性,该程序集记录文件是否存在及其相对位置。