WPF 和 WinForms WebBrowser 控件之间存在哪些功能差异?
Posted
技术标签:
【中文标题】WPF 和 WinForms WebBrowser 控件之间存在哪些功能差异?【英文标题】:What functional differences exist between WPF and WinForms WebBrowser control? 【发布时间】:2010-09-15 08:32:53 【问题描述】:WPF WebBrowser 控件看起来很棒,但随着时间的推移积累的有关 WinForms WebBrowser 的知识非常丰富,并且很难忽视像 csExWB 这样的工作。很高兴知道 .NET 3.5 的 WPF WebBrowser 控件相对于 WinForms WebBrowser 控件存在哪些功能缺点或优点。特别是,是否可以在 WPF WebBrowser 之上构建类似 csExWB 的功能?
【问题讨论】:
【参考方案1】:从对 wpf 组件的一整天的沮丧中,这就是我的发现。显然,winforms webbrowser 公开了更多的方法和属性。比如wpf webbrowser中没有IsWebBrowserContextMenuEnabled
、ActiveXInstance
等。
此外,每个属性的document
属性包含不同类型的对象。 Winform 包含一个System.Windows.Forms.htmlDocument
类型的文档,其中包含一些有趣的方法和属性,例如PointToClient
和GetElementFromPoint
。 Wpf webbrowser 文档是一个Object
类型的文档,可以转换为mshtml.HtmlDocument
,它只提供与标准html + javascript 文档相同的方法和属性。不是很令人兴奋。我不知道它是否可以转换为其他东西(很有用),因为没有关于它的真实文档。
我注意到 winforms webbrowser 的唯一缺点是组件内的按钮和滚动条与 wpf 原生控件的外观不同。
【讨论】:
【参考方案2】:我必须承认我不知道它们之间的区别,但如果你遇到问题,你也许可以使用WindowsFormsHost 在 WPF 中托管 winform 版本,like so?最终,两者都是 shdocvw 的封装,因此“纯 WPF”之类的原则并不真正适用。
【讨论】:
以上是关于WPF 和 WinForms WebBrowser 控件之间存在哪些功能差异?的主要内容,如果未能解决你的问题,请参考以下文章
如何截获WebBrowser控件onbeforeunload事件
如何使用 WPF WebBrowser 覆盖网页上的 btnSubmit_onclick javascript 函数?
在 C# winforms 中的同一表单上从一个 webBrowser 导航到另一个 webBrowser