2009-10-01 8 views
2

J'ai une erreur bizarre que vous pourrez j'espère pouvoir m'aider avec.Silverlight GetElementById IE6

Je possède ce code dans mon application 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)); 
} 

Ce redimensionne essentiellement mon conteneur div afin qu'il tienne dans le navigateur. Cela fonctionne bien dans IE7 +, Firefox et Chrome. Le problème est que dans IE6 cela ne fonctionne pas. Et je ne sais pas pourquoi.

page Balisage:

<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> 

Est-ce que quelqu'un a des idées comment je peux obtenir ce travail comme vous le souhaitez?

Merci, Simon

+0

Définir « ne fonctionne pas »? – AnthonyWJones

+0

Dans IE6, le DiV "silverlightControlHost" restera à 10px. Dans tous les autres navigateurs, ceci est redimensionné comme souhaité à la taille du contenu Silverlight afin qu'il s'intègre correctement dans la page. – 4imble

Répondre

1

Vous devez redimensionner votre balise d'objet aussi bien, je viens d'avoir le même problème, je l'avais signé l'événement OnSizeChanged et changé la hauteur et la largeur du conteneur div, mais dans IE6 que n'a pas travaillé, si un collègue m'a dit que dans IE6 vous avez besoin de redimensionner l'objet aussi bien, donc placer une pièce d'identité sur votre étiquette et de l'utiliser sur cette

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

Exactement raison, merci pour cela. Fonctionne un régal. – 4imble