我创建了一个简单的 silverlight 应用程序来实时显示来自 xml 的一些文本。使用 HTML DIV 标签显示的文本。我添加了插件属性 windowless=true, enablehtmlaccess=true,background=transparent。
在 Silverlight 上,我在顶部和底部添加了一个“继续”按钮,该按钮会在单击时显示一些消息。
Silverlight 插件根据 XML 内容调整大小。
我的代码:
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:
在应用程序开始上创建 HTML DIV 使用:
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);
设置 XML 文本:
HtmlElement divHTMLViewer = HtmlPage.Document.GetElementById("divHTMLViewer");
sText = sText.Replace("<", "<").Replace(">", ">");
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 插件大小增加代码:
isilverlightControlHost.SetStyleAttribute("height", HtmlPage.Window.Eval("document.documentElement.scrollHeight").ToString() + "px");
isilverlightControlHost.SetStyleAttribute("position", "absolute");
所有这些代码在 Internet Explorer、Crome 和 Safari 中运行良好,但“继续”仅在 FIREFOX 中不可见。
那么这段代码有什么问题吗?
代码示例: http: //lm-bucket-for-forum-post.s3.amazonaws.com/HtMLViewerSilverLight.zip
工作示例:只需将上述 URL 中的“.zip”替换为“TestPage.html”即可。
请让我知道我该如何解决?
提前致谢, Laxmilal Menaria