WPF应用中使用System.Drawing.Bitmap报错问题求助
在WPF项目中使用System.Drawing.Bitmap的解决方案
你遇到的问题其实挺常见的——WPF项目默认不会自动引用System.Drawing相关的程序集,而Windows Forms项目是默认包含这个引用的,所以才会出现声明System.Drawing.Bitmap时触发报错的情况。解决这个问题只需要手动添加程序集引用就可以了,具体步骤如下:
- 右键你的WPF项目,选择添加 → 引用
- 在弹出的「引用管理器」窗口中,切换到程序集 → 框架标签页
- 找到并勾选
System.Drawing选项,点击「确定」保存设置
添加完成后,你就能正常声明Dim b as System.Drawing.Bitmap(VB)或者System.Drawing.Bitmap b;(C#)这类代码了,之前的报错也会消失。
另外,结合你提到的剪贴板获取图片并转为WPF ImageSource的场景,补充两个小提示:
- 处理
System.Drawing.Bitmap时要注意资源释放,它属于非托管资源,建议用using语句(C#)或者Using块(VB)包裹,避免内存泄漏。比如:// C#示例 using (var bmp = (System.Drawing.Bitmap)Clipboard.GetImage()) { // 执行Bitmap转ImageSource的逻辑 }' VB示例 Using bmp As System.Drawing.Bitmap = DirectCast(Clipboard.GetImage(), System.Drawing.Bitmap) ' 执行Bitmap转ImageSource的逻辑 End Using - 其实WPF有更原生的图片处理方式,比如使用
System.Windows.Media.Imaging命名空间下的类型,能避免跨UI框架的依赖。不过如果你已经选定了之前的解决方案,添加完引用后就能正常运行了。
内容的提问来源于stack exchange,提问作者Luis




