【问题标题】:WPF WebBrowser control: Disable download or how to find out all displayable filetypesWPF WebBrowser 控件:禁用下载或如何找出所有可显示的文件类型
【发布时间】:2015-09-10 07:26:41
【问题描述】:

我正在编写一个文档视图,我想将 WebBrowser 控件的功能用于某些文件格式(pdf、电子邮件)。

现在我有一个问题,对于 WebBrowser 控件未知的每种文件格式,它都提供下载文件。

所以问题是:如何找出浏览器可以显示哪些文件格式(文件扩展名),以便我可以向用户显示不支持显示当前文件格式的消息,而不是获取“是否要下载”对话框。

【问题讨论】:

    标签: c# .net wpf webbrowser-control


    【解决方案1】:

    如果我是你,我不会使用 WebBrowser 控件,原因如下:

    • WebBrowser 只是 IE 引擎的封装。它默认使用旧版本的 IE,因此它可能无法正确显示具有基本 CSS 样式的 HTML 文档。可以强制使用较新版本的 IE 甚至其他引擎,但这需要一些努力。

    • WebBrowser 控件的目的是显示和浏览网页。导航本质上是下载。我相信阻止 WebBrowser 下载文件即使不是不可能也很难。我相信您可以这样做的一种方法是修改 html 文件,如下所示:Remove hyperlink but keep text? 此外,您可能希望阻止上下文菜单打开。

    • WebBrowser 控件能够显示 PDF,如此处所述 Displaying a PDF in a WPF Application Not Working - WebBrowser or Adobe Control 但我不知道您将如何阻止关注放在 pdf 中的链接

    我建议您使用许多免版税的 PDF 查看控件之一,而不是使用 WebBrowser,并将您的 html 文档转换为 PDF。我相信建议的方法会花费您更少的时间并且会更强大

    【讨论】:

    • 我不认为有这么多免费的 PDF 查看器。如果你跳过所有 GPL、AGPL 的东西,那就没那么多了。顺便说一句,使用 PDF 的 WebBrowser 控件可以很好地与 Acrobat Reader 配合使用。想法是将它也用于其他文件格式,例如 eml、txt、... 在将文件传递给 WebBrowser 控件之前过滤这些扩展名不是问题。但是我怎么知道 WebBrowser 控件可以查看哪些文件格式。在 WinForms 中,我使用了 Adob​​e Reader 控件。它让我对查看文档有了更多的控制权,但是 Brwoser 插件就足够了。
    猜你喜欢
    • 2015-06-13
    • 2010-09-21
    • 1970-01-01
    • 2013-02-20
    • 1970-01-01
    • 2013-03-03
    • 2014-06-22
    • 2010-10-12
    相关资源
    最近更新 更多