2010-05-29 69 views
4

我有一个MDI WPF应用程序,我需要添加网页内容。起初,看起来好像我有两个选项内置在框架Frame控制和WebBrowser控制。鉴于这是一个MDI应用程序,它不需要很长时间就可以发现这些应用程序都不会起作用。什么是WPF WebBrowser控件的好选择?

WPF WebBrowser控件包装了使用Win32图形管道的IE WebBrowser ActiveX Control。 “Airspace”问题几乎总结为“对不起,布局不会一起玩”。

是的,我曾经想过拍摄快照网页内容渲染这些并映射鼠标和键盘事件返回给浏览器的控制,但我买不起的性能损失,我真的没有时间来写和彻底测试它。

我已经找过第三方控件,但到目前为止我只找到Chris Cavanagh'sWPF Chromium Web Browser控件。其中包装Awesomium 1.5。这些非常酷,他们与WPF布局很好。但他们不符合我的表现要求。他们在内存消耗方面非常沉重,而且也不喜欢CPU的使用。更不用说还有很多车。我会详细说明你是否感兴趣。

所以,做任何你知道一个稳定的高性能WPF Web浏览器控件的?

谢谢。

回答

4

我不认为有很多完全托管的网页控件。在http://www.modeltext.com/html/(我是它的作者)有一个不寻常的。

这是一个Windows窗体控件,而不是WPF。 Windows Forms – WPF Interoperability FAQ暗示这不是问题;但我不知道“空域问题”是否排除使用Windows窗体控件。

加方:

  • 全面管理
  • 高性能:低CPU至少(我不知道你的内存要求是什么)
  • 可以在它的多个实例应用

在消极方面:

  • 只有将由主流浏览器支持的功能的子集(因此,这取决于你想要什么)
  • 测试版质量

编辑:

看起来不错的工作。

谢谢。

对于这个应用程序,我需要一个功能齐全的浏览器(我必须支持javascript)。

在这种情况下,这不适用于您:此控件公开.NET(非JavaScript)DOM API;因此,应用程序可以实现并安装DOM事件处理程序,它使用C#而不是JavaScript编写。

是的,在WPF应用程序中托管控件将正常工作,直到您需要分层对象。由于渲染流水线,所有的winforms控件都会遇到这个问题。请参阅上面的链接。你有没有考虑过本地的WPF端口?

甲WPF端口是可能的,因为它呈现到/通过的抽象设备上下文类似的接口,其中我有两个完整的/不同到目前为止实现:

  • One使用System.Windows.FormsSystem.Drawing
  • 另一种是我的自动测试框架,它

理论上可能实现用于GUI回归测试的“谦虚对话框”图案我可以使用System.Windows.ControlsSystem.Windows.Media实现第三个WPF。

的随机一种,但你可能会发现这个有趣的:http://blog.spencen.com/2008/01/19/html-to-flowdocument-converter.aspx

谢谢你的:我发现这很有意思。 WPF RichTextBox提供了许多编辑功能。

+0

看起来不错的工作。对于这个应用程序,我需要一个功能齐全的浏览器(我必须支持javascript)。是的,将控件托管在WPF应用程序中可以正常工作,直到您需要对对象进行分层。由于渲染流水线,所有的winforms控件都会遇到这个问题。请参阅上面的链接。你有没有考虑过本地的WPF端口?一种随机的,但你可能会发现这有趣:http://blog.spencen.com/2008/01/19/html-to-flowdocument-converter.aspx – VoidDweller 2010-05-29 18:53:52

+0

不错的工作。谢谢 – 2010-08-09 18:09:59