Frage

Ich habe eine einfache Silverlight -Anwendung erstellt, um einen Text zu Echtzeit von XML anzuzeigen. Die Textanzeige mithilfe des HTML -DIV -Tags. Ich habe Plugin -Eigenschaft fensterlos = true hinzugefügt, enableHtmlAccess = true, Hintergrund = transparent.

Auf Silverlight habe ich einen Knopf hinzugefügt. "Fortsetzen"oben und unten, die eine Nachricht auf diesem Klick anzeigen.

Silverlight Plugin -Größenänderung in XML -Inhalten.

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

Erstellen von HTML DIV bei Anwendungen Beginnen Sie mit der Verwendung:

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

Setzen Sie den XML -Text:

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

Silverlight Plugin -Größe erhöhen Code:

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

All diese Code funktioniert einwandfrei im Internet Explorer, Crome & Safari, aber "Fortsetzen"Nicht nur in Firefox sichtbar.

Gibt es ein Problem mit diesem Code?

Code Beispiel:http://lm-bucket-for-forum-post.s3.amazonaws.com/htmlviewerSilverlight.zip

Arbeitsprobe: Nur ersetzen ".zip" durch "testpage.html" in der obigen URL.

Bitte lassen Sie mich wissen, wie ich es lösen kann.

Vielen Dank im Voraus, Laxmilal Menaria

War es hilfreich?

Lösung

Ich habe einen Blick auf Ihren Code geworfen und wie ich vermutete, dass es nicht Silberlight ist, das das Problem zu sein scheint, sondern mehr die Implementierung von CSS in den verschiedenen Browsern.

Um diese Arbeit in beiden Browsern zu machen, müssen Sie entweder die folgende Codezeile entfernen:

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

Oder ändern Sie den Code so, dass das Positionsstilattribut von Firefox ignoriert wird:

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

Ich habe dies auf meiner Maschine mit IE8 und FF3.6.12 und dem ausprobiert Fortsetzen Die Schaltflächen sind in beiden Fällen sichtbar, wenn diese Codezeile geändert wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top