【发布时间】:2011-09-28 02:14:14
【问题描述】:
我是 WPF 和 C# 的新手,所以我会尽量具体一点,以便您理解。
我想做什么?
我有一个带有 WebBrowser 控件的 WPF 页面。我正在导航到在控件中完美显示的特定 URL。现在,我想以编程方式全选并将网页内容复制到我的剪贴板。
我尝试了什么
dynamic doc = webbrowser1.Document;
var htmlText = doc.documentElement.InnerText;
然而,这会删除一些格式,如空表列,因此它不会是与 CTRL-A / CTRL-C 相同的数据
我也尝试过使用 InnerHTML 进行上述操作,这给了我 HTML 代码。然后,当我将其粘贴到一个空的记事本中并将其另存为 .html 文件时,在 IE 中从外部打开并执行 CTRL-A / CTRL-C 它会给我想要的结果。
知道如何通过代码获得完全相同的结果吗?!
【问题讨论】:
-
您尝试打印它的内容吗?看看链接:stackoverflow.com/questions/1298969/…
-
@caglar_gonul 抱歉,我没有尝试打印内容。我应该试试吗?我也尝试过使用 doc.ExecCommand("SelectAll",null,null) 和 "doc.ExecCommand("Copy",null,null) 但这也不起作用。
-
能否请您添加对 Microsoft.mshtml 的引用并尝试上面的链接。应该需要 5 分钟。
-
@caglar_gonul 这导致:无法将类型为“mshtml.HTMLDocumentClass”的 COM 对象转换为接口类型“System.Windows.Documents.IDocumentPaginatorSource”。此操作失败,因为 IID 为“{2C0C27DF-282F-3225-ADCD-CEC68F890EEB}”的接口的 COM 组件上的 QueryInterface 调用因以下错误而失败:不支持此类接口(来自 HRESULT 的异常:0x80004002 (E_NOINTERFACE)) .