工作中遇到客户想要自己替换软件Logo的问题,本身logo的获取方式最底层是这样的:
string path = AppDomain.CurrentDomain.BaseDirectory + "Image\\" + name;if (File.Exists(path)){return new Bitmap(path);}
但是在软件运行时想要更改logo的文件,就会报"xxx正由另一进程使用,因此该进程无法访问该文件。"的错误。因为new Bitmap会一直占用该文件,改成这样就不会占用,可以在运行时修改logo了。
Bitmap bitmap = null;string path =Path.Combine( GetWorkspace(), "Image", name);if (File.Exists(path)){Image img = Image.FromFile(path);bitmap = new Bitmap(img);img.Dispose();return bitmap;}