【问题标题】:What functional differences exist between WPF and WinForms WebBrowser control?WPF 和 WinForms WebBrowser 控件之间存在哪些功能差异?
【发布时间】:2010-09-15 08:32:53
【问题描述】:
WPF WebBrowser 控件看起来很棒,但随着时间的推移积累的有关 WinForms WebBrowser 的知识非常丰富,并且很难忽视像 csExWB 这样的工作。很高兴知道 .NET 3.5 的 WPF WebBrowser 控件相对于 WinForms WebBrowser 控件存在哪些功能缺点或优点。特别是,是否可以在 WPF WebBrowser 之上构建类似 csExWB 的功能?
【问题讨论】:
标签:
c#
.net
wpf
winforms
webbrowser-control
【解决方案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”之类的原则并不真正适用。