You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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的场景,补充两个小提示:

  1. 处理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
    
  2. 其实WPF有更原生的图片处理方式,比如使用System.Windows.Media.Imaging命名空间下的类型,能避免跨UI框架的依赖。不过如果你已经选定了之前的解决方案,添加完引用后就能正常运行了。

内容的提问来源于stack exchange,提问作者Luis

火山引擎 最新活动