Pregunta

He creado una aplicación simple de Silverlight para mostrar algún texto en tiempo real desde XML. La pantalla de texto usando la etiqueta HTML div. He agregado la propiedad del complemento Windowless = True, EnableHTMLAccess = True, Background = Transparent.

En Silverlight he agregado un botón "Continuar"En Top & Bottom, que muestra algún mensaje en ese clic.

Silverlight Plugin Reiz basado en contenidos XML.

Mi código :

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:

Creación de HTML DIV en la aplicación Comience a usar:

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

Establezca el texto 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);

Código de aumento del tamaño del complemento de Silverlight:

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

Todo este código funciona bien en Internet Explorer, Crome y Safari pero "Continuar"No visible solo en Firefox.

Entonces, ¿hay algún problema con este código?

Muestra de código:http://lm-bucket-for-forum-post.s3.amazonaws.com/htmlviewersilverlight.zip

Muestra de trabajo: simplemente reemplace ".zip" con "testPage.html" en URL anterior.

Por favor, hágame saber cómo puedo resolverlo.

Gracias de antemano, laxmilal Menaria

¿Fue útil?

Solución

He echado un vistazo a su código y, como sospeché que no es Silverlight, ese parece ser el problema, sino más bien la implementación de CSS dentro de los diferentes navegadores.

Para que esto funcione en ambos navegadores, debe eliminar la siguiente línea de código:

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

O enmendar el código para que el atributo de estilo de posición sea ignorado por Firefox:

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

He probado esto en mi máquina usando IE8 y FF3.6.12 y el Continuar Los botones son visibles en ambos cuando se cambia esta línea de código.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top