質問

XMLからリアルタイムでテキストを表示するためのシンプルなSilverlightアプリケーションを作成しました。 HTML Divタグを使用したテキスト表示。プラグインプロパティWindowless = true、enabablehtmlaccess = true、background =透過を追加しました。

シルバーライトでボタンを追加しました」継続する「上下に、そのクリックにメッセージが表示されます。

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("&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プラグインサイズの増加コード:

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

これらのコードはすべて、インターネットエクスプローラー、クローム、サファリで正常に機能していますが」継続する「Firefoxのみでは見えません。

それで、このコードに問題はありますか?

コードサンプル:http://lm-bucket-for-forum-post.s3.amazonaws.com/htmlviewersilverlight.zip

作業サンプル:上記のURLの「testpage.html」に「.zip」を置き換えるだけです。

どうすれば解決できますか?

よろしくお願いします、Laxmilal Menaria

役に立ちましたか?

解決

私はあなたのコードを見ました、そして、私はそれが問題のように思われるシルバーライトではなく、さまざまなブラウザ内でのCSSの実装の多くを疑っていました。

両方のブラウザでこの作業を行うには、次のコード行を削除する必要があります。

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

または、Firefoxによってポジションスタイル属性が無視されるようにコードを修正します。

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

IE8とFF3.6.12と 継続する このコード行が変更されたとき、ボタンは両方で表示されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top