最近开发wpf项目中有一个模块需要显示PDF文件内容。由于WPF本身没有PDF加载控件(似乎有收费的我查到过类似的资料。如果有新的pdf控件也请通知我一下谢谢)。

项目使用之前也是从网上获取的资料,因此接下来的控件命名和项目命名完全沿用原文档。具体地址忘记了。这样也好感谢原作者。

不过里面的逻辑根据项目实际应用做了变工 。每人理解不同为了大家更快更好地的使用。因此我也对自己理解整理出文档供大家参考一下。不足之处还请多指教

因此打算使用WinFrom中所提供的pdf阅读库

首先要准备好AxInterop.AcroPDFLib.dll,Interop.AcroPDFLib.dll类库。 计算机安装过adopdf阅读器

接下来开始制作WinformPDF用户控件

项目中控件和项目命名 采用

首先新建一个项目 添加Winform UserControl。

添加引用两个pdf类库

接下来 给用用户控件中添加pdf控件

接下来打开打开用户控件后置类,重新构造用户控件的构造函数,将用户控件被初始化时 加载显示PDF内容

这样的话 Winform部分就完成了,编译运行成功。如果失败请参照异常信息进行程序修正。

接下来进入主题wpf中使用pdf文档阅读

首先WPF要使用Winform中的空间需要添加对应的类库支持。

接下来在WPF项目中添加引用 刚刚完成的 pdfView用户控件

到此WPF引用结束。现在我们开始WPF中进行使用控件

WPF使用控件有两种方式

1 不采用设计模式 直接使用后置类中进行阅读PDF文档,如果采用这种方式直接 调用控件为PDF控件赋值文件路径即可

备注:WindowFormHost是加载winform控件的容器因此必须将所有winform控件放在WindowFormHost内。

第二种使用MVVM设计模式使用绑定方式。由于WindowFormHost的Child不支持绑定因此绑定方式特殊一点。

上述代码是通过以当前主窗体为标准通过控件名字WinFormHostOfPdfCtrl查找到WinformHost控件 将PDF控件赋值给Child属性

到此所有WPF引用PDF文件阅读结束,应该还算详细吧参照文档就能实现所要的功能。如果有不足支出还请多多指出来,共同学习。

运行看一下结果

WPF使用Winform PDFView控件的更多相关文章

  1. WPF 使用WinForm Chart控件

    第一步:  页面 首先引用命名空间 xmlns:wfi="clr-namespace:System.Windows.Forms.Integration;assembly=WindowsFor ...

  2. CYQ.Data 支持WPF相关的数据控件绑定(2013-08-09)

    事件的结果 经过多天的思考及忙碌的开发及测试,CYQ.Data 终于在UI上全面支持WPF,至此,CYQ.Data 已经可以方便支持wpf的开发,同时,框架仍保留最低.net framework2.0 ...

  3. WPF Step By Step 控件介绍

    WPF Step By Step 控件介绍 回顾 上一篇,我们主要讨论了WPF的几个重点的基本知识的介绍,本篇,我们将会简单的介绍几个基本控件的简单用法,本文会举几个项目中的具体的例子,结合这些 例子 ...

  4. CYQ.Data 支持WPF相关的数据控件绑定.Net获取iis版本

    CYQ.Data 支持WPF相关的数据控件绑定(2013-08-09) 事件的结果 经过多天的思考及忙碌的开发及测试,CYQ.Data 终于在UI上全面支持WPF,至此,CYQ.Data 已经可以方便 ...

  5. winform基础控件总结

    转自:http://www.cnblogs.com/top5/archive/2010/04/29/1724039.html 基础 - 常用控件 C# WinForm开发系列 - CheckBox/B ...

  6. 在DevExpress程序中使用Winform分页控件直接录入数据并保存

    一般情况下,我们都倾向于使用一个组织比较好的独立界面来录入或者展示相关的数据,这样处理比较规范,也方便显示比较复杂的数据.不过在一些情况下,我们也可能需要直接在GridView表格上直接录入或者修改数 ...

  7. winform窗体控件(全)

    回顾跟补充下除了昨天那常用6个其他的winform窗体控件作用 1:Button:按钮 (1)AutoSize:如果是True的情况下,内容将会撑开:False的话会另起一行 (2)Enabled: ...

  8. WPF中的image控件的Source赋值

    WPF中的Image控件Source的设置 1.XAML中 简单的方式(Source="haha.png"); image控件的Source设置为相对路径后(Source=&quo ...

  9. C#实现WinForm DataGridView控件支持叠加数据绑定

    我们都知道WinForm DataGridView控件支持数据绑定,使用方法很简单,只需将DataSource属性指定到相应的数据源即可,但需注意数据源必须支持IListSource类型,这里说的是支 ...

随机推荐

  1. ICCV2015上的GazeTracker论文总结

    SLAM问题先慢慢编译一段时间,赶紧拾起来GazeTrack的事情...... ICCV2015的大部分paper已经可以下载,文章列表在这个位置. http://www.cvpapers.com/i ...

  2. 国外AI界牛人主页 及资源链接

    感觉 好博客要收集,还是贴在自己空间里难忘!!! 原文链接:http://blog.csdn.net/hitwengqi/article/details/7907366 http://people.c ...

  3. efcore 控制台迁移架构

    添加 nuget 包: Microsoft.EntityFrameworkCore.Design Microsoft.EntityFrameworkCore.SqlServer Microsoft.E ...

  4. element ui table(表格)点击一行展开

    element ui是一个非常不错的vue的UI框架,element对table进行了封装,简化了vue对表格的渲染. element ui表格中有一个功能是展开行,在2.0版本官网例子中,只可以点击 ...

  5. 学习网址Collect

    Laravel 学院    https://laravelacademy.org/wx小程序 https://developers.weixin.qq.com/miniprogram/dev/quic ...

  6. eoLinker GoKu Gateway 开源版 V2.1发布,加入UI管理系统等

    GoKu API Gateway 是eoLinker旗下的开源版接口网关,支持OpenAPI与微服务管理,支持私有云部署,实现API转发.请求参数转换.数据校验等功能,提供图形化界面管理,能够快速管理 ...

  7. HttpRunnerManager 搭建使用方法

    HttpRunnerManager Design Philosophy 基于HttpRunner的接口自动化测试平台: HttpRunner, djcelery and Django_. HttpRu ...

  8. 莫烦大大keras的Mnist手写识别(5)----自编码

    一.步骤: 导入包和读取数据 数据预处理 编码层和解码层的建立 + 构建模型 编译模型 训练模型 测试模型[只用编码层来画图] 二.代码: 1.导入包和读取数据 #导入相关的包 import nump ...

  9. centos7关闭防火墙以及查看防火墙状态

    1.关闭firewall:systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止fir ...

  10. js中writeln()方法

    writeln( ) 方法与 write( ) 方法几乎一样,差别仅在于是前者将在所提供的任何字符串后添加一个换行符.在 HTML 中,这通常只会在后面产生一个空格:不过如果使用了 <PRE&g ...