Question

J'ai créé une application Silverlight simple pour afficher du texte en temps réel à partir de XML. L'affichage de texte à l'aide de la balise HTML DIV. J'ai ajouté une propriété de plugin windowless = true, activhtmlaccess = true, background = transparent.

Sur Silverlight, j'ai ajouté un bouton "Continuer"En haut et en bas, qui montre un message sur ce clic.

Le plugin Silverlight redimensionne-toi basé dans le contenu XML.

Mon code:

Mainpage.xaml:

<Grid x:Name="LayoutRoot">
        <StackPanel HorizontalAlignment="Right" VerticalAlignment="Top">
            <Button x:Name="topContinue" Content="Continue" Margin="0,30,30,0" Click="Continue_Click"></Button>
        </StackPanel>
        <StackPanel HorizontalAlignment="Right" VerticalAlignment="Bottom">
            <Button x:Name="bottomContinue" Content="Continue" Margin="0,0,30,30" Click="Continue_Click"></Button>
        </StackPanel>
</Grid>

Mainpage.xaml.cs:

Création de div html sur l'application Commencez à utiliser:

HtmlDocument _document = HtmlPage.Document;
HtmlElement iDIV = _document.CreateElement("DIV");
iDIV.SetAttribute("id", "divHTMLViewer");
iDIV.SetStyleAttribute("position", "absolute");
iDIV.SetStyleAttribute("z-index", "1");
iDIV.SetStyleAttribute("display", "INLINE");
iDIV.SetStyleAttribute("top", "100px");
iDIV.SetStyleAttribute("height", "0px");
iDIV.SetStyleAttribute("width", "96%");
iDIV.SetStyleAttribute("left", "15px");
iDIV.SetStyleAttribute("text-align", "justify");

HtmlElement body = _document.GetElementsByTagName("BODY")[0] as HtmlElement;
body.RemoveChild(iDIV);
body.AppendChild(iDIV);

Définissez le texte XML:

HtmlElement divHTMLViewer = HtmlPage.Document.GetElementById("divHTMLViewer");
sText = sText.Replace("&lt;", "<").Replace("&gt;", ">");
divHTMLViewer.SetStyleAttribute("display", "none");
divHTMLViewer.SetStyleAttribute("width", "96%");
divHTMLViewer.SetStyleAttribute("top", "100px");
divHTMLViewer.SetStyleAttribute("left", "15px");
divHTMLViewer.RemoveStyleAttribute("color");
divHTMLViewer.RemoveStyleAttribute("fontSize");
divHTMLViewer.SetProperty("innerHTML", sText);
divHTMLViewer.SetStyleAttribute("display", "INLINE");
setSilverlightControlHeight(UILAYOUT.INSTRUCTIONS);

Code d'augmentation de la taille du plugin Silverlight:

isilverlightControlHost.SetStyleAttribute("height", HtmlPage.Window.Eval("document.documentElement.scrollHeight").ToString() + "px");
isilverlightControlHost.SetStyleAttribute("position", "absolute");

Tout ce code fonctionne bien dans Internet Explorer, Crome & Safari mais "Continuer"Pas visible dans Firefox uniquement.

Alors, y a-t-il un problème avec ce code?

Exemple de code:http://lm-bucket-for-forum-post.s3.amazonaws.com/htmlviewersilverlight.zip

Échantillon de travail: Remplacez simplement ".zip" par "testpage.html" dans l'URL ci-dessus.

S'il vous plaît laissez-moi savoir comment puis-je le résoudre?

Merci d'avance, laxmilal menaria

Était-ce utile?

La solution

J'ai jeté un coup d'œil à votre code et comme je le soupçonnais, ce n'est pas Silverlight qui semble être le problème, mais plus la mise en œuvre de CSS dans les différents navigateurs.

Pour que cela fonctionne dans les deux navigateurs, vous devez soit supprimer la ligne de code suivante:

isilverlightControlHost.SetStyleAttribute("position", "absolute");

Ou modifier le code afin que l'attribut de style de position soit ignoré par Firefox:

isilverlightControlHost.SetStyleAttribute("position", "absolute !important");

J'ai essayé ceci sur ma machine en utilisant IE8 et FF3.6.12 et le Continuer Les boutons sont visibles dans les deux lorsque cette ligne de code est modifiée.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top