WPF使用Winform PDFView控件

时间:2023-03-09 02:09:25
WPF使用Winform PDFView控件

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

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

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

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

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

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

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

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

添加引用两个pdf类库
WPF使用Winform PDFView控件
WPF使用Winform PDFView控件

WPF使用Winform PDFView控件

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

WPF使用Winform PDFView控件

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

WPF使用Winform PDFView控件

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

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

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

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

WPF使用Winform PDFView控件

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

WPF使用控件有两种方式

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

WPF使用Winform PDFView控件

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

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

WPF使用Winform PDFView控件

WPF使用Winform PDFView控件

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

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

运行看一下结果

WPF使用Winform PDFView控件