WPF可以通过ZXing.Net库来实现二维码的功能。

可以通过NuGet安装:

Install-Package ZXing.Net

二维码的实现代码:

        #region 二维码的方法
/// <summary>
/// 注销对象方法API
/// </summary>
/// <param name="obj">准备注销的对象</param>
/// <returns></returns>
[DllImport("gdi32")]
static extern int DeleteObject(IntPtr obj); /// <summary>
/// 生成二维码图形
/// </summary>
/// <param name="content">二维码文本内容</param>
/// <param name="width">图片宽度</param>
/// <param name="height">图片高度</param>
/// <returns>二维码图形</returns>
private BitmapSource CreateQRCode(string content, int width, int height)
{
EncodingOptions options;
//包含一些编码、大小等的设置
//BarcodeWriter :一个智能类来编码一些内容的条形码图像
BarcodeWriter write = null;
options = new QrCodeEncodingOptions
{
DisableECI = true,
CharacterSet = "UTF-8",
Width = width,
Height = height,
Margin =
};
write = new BarcodeWriter();
//设置条形码格式
write.Format = BarcodeFormat.QR_CODE;
//获取或设置选项容器的编码和渲染过程。
write.Options = options;
//对指定的内容进行编码,并返回该条码的呈现实例。渲染属性渲染实例使用,必须设置方法调用之前。
Bitmap bitmap = write.Write(content);
IntPtr ip = bitmap.GetHbitmap();//从GDI+ Bitmap创建GDI位图对象
//Imaging.CreateBitmapSourceFromHBitmap方法,基于所提供的非托管位图和调色板信息的指针,返回一个托管的BitmapSource
BitmapSource bitmapSource = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(ip, IntPtr.Zero, Int32Rect.Empty, System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions());
DeleteObject(ip); return bitmapSource;
}
#endregion

生成二维码的调用代码:

                var strCode = tbxKeyword.Text;
if (string.IsNullOrEmpty(strCode))
{
MessageBox.Show("请输入二维码文本内容");
tbxKeyword.Focus();
return;
} imageData = CreateQRCode(strCode, mSettings.QRCodeSize, mSettings.QRCodeSize);
imgQRCode.Source = imageData;

最新文章

  1. selenium操作浏览器cookie方法
  2. 用AutoHotKey彻底解决“Ctrl键+鼠标滚动”时的缩放问题
  3. [转载]深入理解ASP.NET MVC之ActionResult
  4. Oracle Form 特殊的默认值 $$variables$$
  5. 【转】SVN:Android Studio设置忽略文件
  6. WebApp模版并运行
  7. hdu2457 Trie图+dp
  8. rabbitmq应用
  9. python基础一 ------字符串的多种分隔符分隔
  10. TS 基础数据类型
  11. mysql查询优化之三:查询优化器提示(hint)
  12. [RF] 安装好Robot Framework之后怎样让启动的界面后面不带命令行窗口,且图片以机器人显示
  13. 使用Anemometer分析MySQL慢查询记录
  14. 隐马尔可夫(HMM)
  15. undefined reference to _imp__xmlFree
  16. 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛 H. Skiing (拓扑排序+假dp)
  17. 201704 F-47创建预付款申请a
  18. 强联通分量(tarjan算法+算法简介)
  19. tornado之异步web服务二
  20. 菜鸡的2017CPPC网络赛

热门文章

  1. 利用QPainter绘制各种图形(Shape, Pen 宽带,颜色,风格,Cap,Join,刷子)
  2. LUOGU 1525 关押罪犯 - 并查集拆点(对立点) / 二分+二分图染色
  3. .netcore consul实现服务注册与发现-集群完整版
  4. C++基础代码--20余种数据结构和算法的实现
  5. js进阶 9 js操作表单知识点总结
  6. [转至云风的博客]谈谈陌陌争霸在数据库方面踩过的坑( Redis 篇)
  7. erlang 游戏服务器开发
  8. 我的Boss有性能优化强迫症
  9. 数字电路基本概念 —— fan-in/fan-out
  10. 将grub写入mbr