前段时间我写了一篇《silverlight应用程序只显示一部分的解决方案》的博客,那时我认为解决了应用程序只显示部分的问题,不过随着后来测试的发现,我只是在IE8中解决了该问题(上次写的方法在IE5.5、IE7、IE8等中能达到调整网页的效果),不过在IE6中就会出现问题,如果在第一个页面中调整了页面,后面的页面默认显示范围就是第一个页面的现实范围,要么还是只显示一部分,要么就会出现一块空白。
我再次找了一下导致该问题的原因,就是Iframe的问题,iframe是应用程序的现实区域,它原先的大小为0*0,调整之后就是一个X*Y的范围。而我上次说的那个方法中没有更改iframe的大小,所以就会在IE6中出现上述问题。
现在我将调整函数更改成:
private void LayoutRoot_LayoutUpdated(object sender,EventArgs e)
{
Size size = this.LayoutRoot.DesiredSize;
String heightInPixel = String.Format("{0}px",size.Height);
String containerElementId = "silverlightControlHost";
HtmlElement element = HtmlPage.Document.GetElementById(containerElementId);
element.SetStyleAttribute("height",heightInPixel);
//对显示区域进行调整。
String iframecontainerElementId = "_sl_historyFrame";
HtmlElement iframeelement = HtmlPage.Document.GetElementById(iframecontainerElementId);
iframeelement.SetStyleAttribute("height",heightInPixel);
}
在这我向大家表示歉意,由于我的疏忽,给你带来了麻烦!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。