Pergunta

Eu criei um aplicativo simples de Silverlight para exibir algum texto em tempo real do XML. O texto é exibido usando a tag HTML DIV. Eu adicionei imóveis para plugin windowless = true, enablehtmlaccess = true, background = transparent.

No Silverlight, adicionei um botão "Continuar"Na parte superior e inferior, o que mostra alguma mensagem nesse clique.

O plug -in Silverlight redimensiona com base no conteúdo XML.

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

Criando o HTML DIV no aplicativo Comece 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);

Defina o 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 do tamanho do plug -in de Silverlight:

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

Todo esse código está funcionando bem no Internet Explorer, Crome & Safari, mas "Continuar"Não é visível apenas no Firefox.

Então, há algum problema com este código?

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

Amostra de trabalho: basta substituir ".zip" por "testpage.html" no URL acima.

Por favor, deixe -me saber como posso resolvê -lo?

Obrigado antecipadamente, Menaria Laxmilal

Foi útil?

Solução

Eu dei uma olhada no seu código e, como suspeitei, não é o Silverlight que parece ser o problema, mas mais a implementação do CSS nos diferentes navegadores.

Para fazer isso funcionar nos dois navegadores, você precisa remover a seguinte linha de código:

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

Ou altere o código para que o atributo de estilo de posição seja ignorado pelo Firefox:

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

Eu tentei isso na minha máquina usando IE8 e FF3.6.12 e o Continuar Os botões são visíveis em ambos quando essa linha de código é alterada.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top