简体   繁体   English

如何在Windows Phone 7中自动调整WebBrowser控件的高度?

[英]How to auto adjust WebBrowser control height in Windows Phone 7?

I have created a WebBrowser control in the xaml, and bind some html via string to it. 我已经在xaml中创建了一个WebBrowser控件,并通过字符串将一些html绑定到了它。 It's working fine . 工作正常。 But the WebBrowser will never auto adjust its height. 但是WebBrowser永远不会自动调整其高度。

<phone:WebBrowser
    HorizontalAlignment="Stretch" 
    Margin="0,6,0,0" Name="myWebView" 
    VerticalAlignment="Top" />

private void WebBrowser_OnLoaded(object sender, RoutedEventArgs e)
{
    String htmlTags = "<html><head><meta charset='UTF-8'/><meta name=\"viewport\" content=\"width='480', initial-scale='1'\"></head><body><center>{0}</center></body></html>";
    myWebView.NavigateToString(String.Format(htmlTags, getHTMLContent());
}

public string getHTMLContent()
{
    StringBuilder htmlBody = new StringBuilder();
    htmlBody.Append("<table cellpadding=\"0\" cellspacing=\"0\" width=\"704\" height=\"484\" background=\"https://known.com/img/back/123456.jpg\" style=\"background-repeat: no-repeat; background-position: center;\">");
    htmlBody.Append("<tr>");
    htmlBody.Append("<td valign=top>");
    htmlBody.Append("<div style=\"position: absolute;\">");
    htmlBody.Append("<div style=\"position: absolute; display: table; width: 132px; height: 132px; top: 44px; left: 44px; z-index:0;\">");
    htmlBody.Append("<img src=\"https://known.com/img/icon/87654.jpg\" width=\"100%\" height=\"100%\"/>");
    htmlBody.Append("</div>");
    htmlBody.Append("<div style=\"position: absolute; display: table; width: 704px; height: 484px; top: 0px; left: 0px; z-index:0; \">");
    htmlBody.Append("<img src=\"https://known.com/img/icon/234255.jpg\" width=\"100%\" height=\"100%\"/>");
    htmlBody.Append("</div>");
    htmlBody.Append("<div style=\"position: absolute; display: table; width: 440px; height: 264px; top: 184px; left: 184px; z-index:0;  font-family:times;  font-size:14px;  color:#FFFFFF; \" align=\"center\">");
    htmlBody.Append("<div style=\"display: table-cell;vertical-align: middle;\">");
    htmlBody.Append("</div>");
    htmlBody.Append("</div>");
    htmlBody.Append("</div>");
    htmlBody.Append("</td>");
    htmlBody.Append("</tr>");
    htmlBody.Append("</table>");
    return htmlBody.ToString();
}

What I want the WebBrowser to be 我希望WebBrowser成为

1) Auto adjust its height depends on the HTML String. 1)自动调整其高度取决于HTML字符串。 If i pass only one image mean, it should auto adjust depends on the image. 如果我仅通过一张图像,则应根据图像自动调整。 It there is no content mean, browser should hide itself. 它没有内容的意思,浏览器应该隐藏自己。

2) Should not scrollable, because the WebBrowser already stretch its height to fit the content. 2)不应滚动,因为WebBrowser已经拉伸其高度以适合内容。

How can I make it? 我该怎么做? Please let me any idea to resolve my problem. 请让我有任何想法来解决我的问题。

You need to use javascript to get the height of the rendered html and set it to your WebBrowser control. 您需要使用javascript获取呈现的html的高度并将其设置为WebBrowser控件。

Here is an implementation of this . 下面是一个实现

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM