在C# WPF项目中集成PDF查看器的两种方法
方法1:通过 NuGet 包安装并手动创建控件(推荐)
1. 安装 NuGet 包
|
1 2 3 |
|
或通过 NuGet 包管理器控制台:
|
1 2 |
|
2. 在 XAML 中设置 WindowsFormsHost
由于 PdfiumViewer 是 WinForms 控件,需要在 WPF 中使用 WindowsFormsHost:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
3. 在代码后台创建和使用 PdfViewer
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
|
方法2:创建自定义 WPF 控件(更优雅)
1. 创建 PdfViewerWrapper 用户控件
|
1 2 3 4 5 6 7 8 9 10 11 12 |
|
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
|
2. 在主窗口中使用自定义控件
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
|
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
|
方法3:使用 PdfRenderer 而不是 PdfViewer
如果你只需要简单的 PDF 渲染(没有工具栏),可以使用 PdfRenderer:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
|
解决常见问题
问题1:找不到 PdfiumViewer 控件
- 原因:PdfiumViewer 是 WinForms 控件,不会自动出现在 WPF 工具箱中
- 解决方案:手动创建控件实例,如上所示
问题2:运行时异常(DLL 未找到)
|
1 2 3 4 |
|
问题3:设计时看不到控件
- 原因:WinForms 控件在 WPF 设计器中不可见
- 解决方案:在设计时显示占位符,运行时加载真实控件
|
1 2 3 4 5 6 7 8 9 10 |
|
完整示例项目结构
|
1 2 3 4 5 6 7 8 9 |
|
在工具箱中手动添加控件(可选)
虽然不能直接拖拽,但你可以:
- 创建自定义控件库:将 PdfViewerWrapper 控件编译为独立的 DLL
- 添加到工具箱:
- 右键点击工具箱 → “选择项”
- 浏览并选择你的控件 DLL
- 控件将出现在工具箱中
总结
在 WPF 中使用 PdfiumViewer 的关键步骤:
- 安装 NuGet 包:PdfiumViewer 及其 Native 包
- 使用 WindowsFormsHost:承载 WinForms 控件
- 代码创建控件:在代码后台或自定义用户控件中实例化 PdfViewer
- 加载 PDF:使用
PdfDocument.Load()方法
虽然不能像 WinForms 那样直接在工具箱中拖拽,但通过创建自定义用户控件,你可以在 WPF 中获得类似的开发体验。
更多推荐
所有评论(0)