C# 将PDF查看器添加到WPF应用程序

C# 将PDF查看器添加到WPF应用程序,c#,wpf,visual-studio,xaml,pdf,C#,Wpf,Visual Studio,Xaml,Pdf,我是WPF新手,正在尝试将PDF查看器添加到我的WPF应用程序中,但似乎无法解决如何做到这一点。。。我已经试着在网上找到了一些教程/示例,但由于各种原因,它们似乎对我不起作用 例如,我尝试在以下位置执行教程: 要在设计时添加PDF查看器,请执行以下操作: 从DX.15.2:数据和分析工具箱选项卡中拖动PdfViewerControl,并将其放到主窗口中 但是,我的工具箱中似乎没有数据和分析选项卡。。。有一个数据选项卡,但它只有指针、图表、列表视图等项。是否需要在Visual Studio中添加/

我是WPF新手,正在尝试将PDF查看器添加到我的WPF应用程序中,但似乎无法解决如何做到这一点。。。我已经试着在网上找到了一些教程/示例,但由于各种原因,它们似乎对我不起作用

例如,我尝试在以下位置执行教程: 要在设计时添加PDF查看器,请执行以下操作:

从DX.15.2:数据和分析工具箱选项卡中拖动PdfViewerControl,并将其放到主窗口中

但是,我的工具箱中似乎没有
数据和分析
选项卡。。。有一个
数据
选项卡,但它只有指针、图表、列表视图等项。是否需要在Visual Studio中添加/启用
数据和分析
工具栏

我在以下位置尝试了以下教程: 要通过代码添加PDF查看器,它会说

打开解决方案资源管理器,右键单击引用并选择添加引用。。。添加PDF查看器库

然后,找到DevExpress.Data.v15.2、DevExpress.Pdf.v15.2.Core、DevExpress.Xpf.DocumentViewer.v15.2.Core和DevExpress.Xpf.PdfViewer.v15.2程序集并激活其复选框

但是当我转到
添加引用时,我在任何地方都找不到它提到的程序集,如果我“搜索”它们,就找不到任何项

我是否缺少一个
include
,或者我是否需要从某处或某处导入一些库来使用这些库

我试过的另一个例子是:上面说:

将此控件添加到项目后,Windows窗体设计器应以空白画布打开。您需要打开工具箱(CTRL+W,X)。作为第一步,最好为自定义控件添加一个新选项卡-这是工具箱上下文菜单中的一个选项。展开此新选项卡后,从关联菜单中选择“选择项目”。出现“选择工具箱项”对话框时,选择“COM组件”选项卡并选择Adobe PDF Reader(这将向工具箱中添加AcroPDF.DLL)

但我似乎找不到它所说的
选择工具箱项
COM组件

有谁能给我一个更清晰的教程,或者解释一下我将如何将PDF查看器添加到我的WPF应用程序中?我正在使用Visual Studio 2015

编辑

我已尝试通过执行以下操作在我的应用程序窗口中显示PDF文件:

添加
以在XAML中向GUI显示PDF:

<StackPanel>
    <Grid x:Name="browserHost" Height="300" Width="525" Margin="0,0,0,0"></Grid>
</StackPanel>
但目前,当我运行我的应用程序时,只要它加载,我添加到其中的
浏览器就会显示一个页面,上面写着:

已取消对该网页的导航

然后弹出一个对话框,询问我是否要打开或保存该文件(
sample.pdf
——我正试图在浏览器中显示的文件)


为什么它试图下载文件,而不是显示它?如何让
浏览器
显示文件而不是尝试下载文件?或者我应该在这里使用非
System.Windows.Controls.WebBrowser
的东西吗?

正如@NawedNabiZada所建议的,一种尝试和简单的方法是使用嵌入式InternetExplorer来显示
Adobe PDF Reader
ActiveX控件。因此,它假设您在Windows上运行,并且安装了
AdobePDF Reader

然后创建包含以下控件的用户控件、窗口等:

<WebBrowser x:Name="pdfWebViewer"></WebBrowser>
要将PDF文档加载到该控件,请使用以下简单代码:

pdfWebViewer.Navigate(fullPathToPDF);
许多Windows软件不仅使用WPF应用程序(包括SAP客户端),而且还存在一个隐藏问题,请参阅

必须启用Internet Explorer中的Adobe PDF Reader加载项才能使其工作。杂技阅读器席存在各种各样的问题,最好使用DC版本。为了使Adobe PDF进入IE设置,添加OND并找到Adobe PDF阅读器并启用它(AXI席及以上)。
对我来说,与您链接的代码项目文章相比,这是首选的方式。

对于WPF pdf viewer,您可以使用网络浏览器

它包含用于PDF的嵌入式模块,因此您不需要Acrobat Reader或任何其他ActiveX


对于任何一个在这方面遇到困难,并且需要比WebBrowser多一点控制的人来说:使用Windows 10 API制作自己的PDF查看器非常容易。我写了一篇关于如何做的文章。您可以轻松地向其添加其他功能,如在其顶部绘制(签名)等等

有关代码,请访问


但是,对于超级高级功能,您可能需要一个昂贵的库。

前两个控件是devexpress的商用控件,您必须购买并安装它们。Adobe的第三个控件是Winforms控件,它与WPF不直接兼容。您需要下载(并安装)WPF PDF控件,如或您可以使用WebBrowser,它位于
System.Windows.Controls
中。我已经尝试过这样做(但导航到我想直接查看的文件位置,而不是
about:blank
),但当我运行应用程序时,我添加到应用程序中的
System.Windows.Controls.WebBrowser
显示一个页面,说明
网页导航已被取消
,我收到一个“文件下载”弹出窗口,询问我是否要打开或保存我试图在应用程序中显示的
.pdf
文件。。。你知道为什么吗?我现在要更新我的OP,以显示我在做什么。@someone2088您安装了Adobe Reader吗?你只需写下PDF文件路径或将其拖到IE的url框中即可。谢谢-没有意识到我需要安装Adobe Reader,也没有想到要检查…这对我来说非常有效,直到我意识到WebBrowser是最顶级的。我们有“弹出”的小部件等,所以这个控件与这些控件重叠。无论你尝试什么,它都会保持领先@FrederikMoller它的行为不同,但我是
pdfWebViewer.Navigate(new Uri("about:blank"));
pdfWebViewer.Navigate(fullPathToPDF);