2009-10-01 23 views
2

我有一個奇怪的錯誤,你們會希望能夠幫助我。Silverlight GetElementById IE6

我在我的Silverlight應用程序的代碼:

private void MainGrid_SizeChanged(object sender, SizeChangedEventArgs e) 
{ 
double actualHeight = this.MainGrid.ActualHeight; 
HtmlPage.Document.GetElementById("silverlightControlHost").SetStyleAttribute("height", string.Format("{0}px", actualHeight)); 
} 

這基本上重新調整我的div容器,以便它在瀏覽器配合。這在IE7 +,Firefox和Chrome中運行良好。問題是,在IE6中這是行不通的。我不知道爲什麼。

頁標記:

<style type="text/css"> 
     #silverlightControlHost 
     { 
      height: 10px; //This gets resized in Chrome/IE7+/Firefox 
      text-align: center; 
     } 
    </style> 

    <script type="text/javascript" src="../Silverlight.js"></script> 

</asp:Content> 
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"> 
    <div id="silverlightControlHost"> 
     <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" 
      width="100%" height="100%"> 
      <param name="enablehtmlaccess" value="true"/> 
      <param name="source" value="../ClientBin/myAppXap.xap" /> 
      <param name="onError" value="onSilverlightError" /> 
      <param name="background" value="white" /> 
      <param name="minRuntimeVersion" value="3.0.40624.0" /> 
      <param name="autoUpgrade" value="true" /> 
      <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=3.0.40624.0" style="text-decoration: none"> 
       <img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" 
        style="border-style: none" /> 
      </a> 
     </object> 
     <iframe id="_sl_historyFrame" style="visibility: hidden; height: 0px; width: 0px; 
      border: 0px"></iframe> 
    </div> 
</asp:Content> 

有沒有人有任何想法,期望我能怎麼得到這個工作?

感謝, 西蒙

+0

定義「不工作」? – AnthonyWJones 2009-10-01 16:40:25

+0

在IE6中,DiV「silverlightControlHost」將保持在10px。在所有其他瀏覽器中,根據需要調整大小以適應Silverlight內容的大小,以便它能夠正確地放入頁面。 – 4imble 2009-10-01 16:44:53

回答

1

你要調整你的對象標記爲好,我只是有同樣的問題,我已經然而,在IE6簽署onsizechanged事件,改變了容器div的高度和寬度,即沒有工作,所以一個同事告訴我,在IE6中,你還需要調整對象的大小,因此在你的標籤上放置一個ID,並在此使用。

HtmlPage.Document.GetElementById("objectID").SetStyleAttribute("height", string.Format("{0}px", actualHeight)); 
+0

完全正確,謝謝。作品一種享受。 – 4imble 2009-10-27 10:14:31