Domanda

Ho creato una semplice applicazione Silverlight per visualizzare un po 'di testo in tempo reale da XML. Il display di testo utilizzando il tag HTML Div. Ho aggiunto la proprietà plug -in windowless = true, abilitahtmlaccess = true, background = trasparente.

Su Silverlight ho aggiunto un pulsante "Continua"In alto e in basso, che mostra un messaggio su quel clic.

Plug -in Silverlight Ridimension basato sul contenuto di XML.

Il mio codice:

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:

Creazione di HTML DIV sull'applicazione Inizia utilizzando:

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

Imposta il testo 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);

Codice aumento del plug -in Silverlight: Codice:

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

Tutto questo codice funziona bene in Internet Explorer, Crome & Safari ma "Continua"Non visibile solo in Firefox.

Quindi c'è qualche problema con questo codice?

Esempio di codice:http://lm-bucket-for-forum-post.s3.amazonaws.com/htmlviewerilverlight.zip

campione di lavoro: basta sostituire ".zip" con "testpage.html" nell'URL sopra.

Per favore fatemi sapere come posso risolverlo?

Grazie in anticipo, laxmilal menaria

È stato utile?

Soluzione

Ho dato un'occhiata al tuo codice e poiché sospettavo che non sia Silverlight che sembra essere il problema, ma più l'implementazione di CSS all'interno dei diversi browser.

Per far funzionare questo in entrambi i browser è necessario rimuovere la seguente riga di codice:

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

O modificare il codice in modo che l'attributo in stile posizione sia ignorato da Firefox:

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

L'ho provato sulla mia macchina usando IE8 e FF3.6.12 e il Continua I pulsanti sono visibili in entrambi quando questa riga di codice viene modificata.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top