WPF中的Awesomium在窗口未调整大小时无法渲染

3

我第一次安装了Awesomium(版本号为1.7.4.2)。

我很兴奋地发现了一种在我的WPF应用程序中与Web内容进行交互的方法。我启动了它,但有些失望。我的第一个简单的WPF测试失败了。

我尝试了以下代码:

 <Window
       xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
       xmlns:awe="http://schemas.awesomium.com/winfx" 
       x:Class="WpfAndSpa.MainWindow">
   <Grid>
       <awe:WebControl  x:Name="WebControl" Source="http://google.com"/>
   </Grid>
</Window>

我得到了一个空白屏幕。

尝试调整窗口大小后,发现网页可以渲染。

有没有自动的方法来让内容渲染?(显然,我不能要求用户每次加载页面时都调整屏幕大小。)

注意:我尝试了Awesomium示例“WpfWebControlSample”,它也有同样的问题。

更新:屏幕是静态的。因此,如果你调整大小并进入Google.com,如果你在搜索框中输入文本,你看不到你的文本,除非你再次调整屏幕大小。

这个问题几乎让Awesomium无法使用。有人知道类似的东西吗?


我不熟悉Awesomium,但您可以订阅Web控件的ReadyStateChanged事件(或类似事件),并调用窗口的resize、MeasureInvalidated或ArrangeInvalidated方法吗? - Arashv
1个回答

0

所以我解决了这个问题。这不是Awesomium的错误。(虽然我认为它应该在快速启动页面上提到。)

Awesomium支持两种视图模式:离屏和窗口。

离屏是一种非常手动的模式。所有输入都需要经过您处理。(为什么默认事件仍然不触发有点奇怪)。如果您想与HTML交互,我认为这是您最终会使用的模式。

但是,如果您想要一个正常的嵌入式浏览器窗口,则需要打开窗口视图模式。

以下是更新后的示例:

<Window
       xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
       xmlns:awe="http://schemas.awesomium.com/winfx" 
       x:Class="WpfAndSpa.MainWindow">
   <Grid>
       <awe:WebControl x:Name="WebControl"
                       ViewType="Window"       <--------------+
                       Source="http://google.com"/>           |
   </Grid>                                                    |
</Window>                                                     |
                                                              |
This part is new ---------------------------------------------+

使用Awesomium相比WebBrowser控件有什么优势? - Dean Kuga
@Dean k. 我还在研究中,但潜在的列表包括支持 HTML 5 和更深入地集成网页事件(按钮点击等)。 - Vaccano

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接