微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

silverlight应用程序只显示一部分的解决方案的补充

       前段时间我写了一篇《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] 举报,一经查实,本站将立刻删除。

相关推荐