如何将页面适配到Silverlight WebBrowser控件?

5

我使用WebBrowser Silverlight 4控件加载某些页面:

<WebBrowser Height="350" Name="webBrowser" Width="400" />
...
webBrowser.Navigate(new Uri("http://mail.live.com")); 

但是页面加载时会出现水平和垂直滚动条。因此,我正在尝试找到一些方法来获取加载页面的实际大小(然后我可以更改控件的高度/宽度)或者更改加载页面的比例(以适应实际的WebControl控件)。是否可能使用标准WebControl方法实现?

3个回答

5
Silverlight中的Web浏览器组件是由Silverlight控件包装的COM组件。
您有两个选择。1)使网站在浏览器内部流体,以便随着浏览器缩小。
或者
2)唯一的方法是设置缩放来“缩小”网站。这里有一个链接,可以通过欺骗鼠标滚轮来为您缩放它。 http://forums.silverlight.net/forums/p/200177/466986.aspx

访问嵌入页面的DOM以获取尺寸会很好,但是这是受限制的,所以我认为你的方法是最好的解决方法。 - Keith

0

明白了。

通常可以使用ViewBox来实现,但不幸的是它在Webbrowser上不起作用。我猜你将不得不等到Webbrowser的下一个版本:(

- 以下是旧答案:

我不确定是否正确理解了你的问题,你想让Webbrowser适合其父容器吗?

也许像这样使用HorizontalContentAlignment和VerticalContentAlignment?

<ScrollViewer HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch">
     <WebBrowser Name="webBrowser" />
</ScrollViewer>

你能解释得更清楚一些吗?

谢谢


谢谢你的回答。这不是我需要的确切内容。所以,细节。例如:我正在尝试使用Height="600"和Width="900"的WebBrowser控件实例打开某个网页。页面正确地打开。然后我决定更改WebBrowser控件的大小,并设置Height="300"和Width="600"。当然,整个页面无法在WebBrowser中显示,滚动条出现了。因此,我正在寻找一种方法来删除这些滚动条(并显示整个页面)。最理想的方法是更改WebBrowser控件内部网页的比例。 - Igor V Savchenko

0
您可以通过将WebBrowser控件包装到ViewBox控件中,然后在ViewBox上设置宽度和高度来缩小它。您还需要在viewbox上设置Stretch属性为Uniform。
<ViewBox x:Name="MyViewBox" Width="350" Height="350" Stretch="Uniform">
    <WebBrowser x:Name="MyWebBrowser" Source="...." />
</ViewBox>

希望这对您有所帮助。

如果有帮助,请标记为答案。谢谢。


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