0

Windows 8 Metro アプリケーションで WebView コントロールを使用しています。マークアップに埋め込まれた画像を含む、ネットワーク ストリームから読み取った html 文字列があります。

コントロールは、HTML 内の画像のソースが何らかの Web サイトを指している場合はうまく機能しますが、マークアップに埋め込まれた画像の場合はうまくいきません。

これらの画像はレンダリングされません。代わりに、画像のプレースホルダーを表すブロックがレンダリングされます。

HTMLをロードするために、NavigateToStringメソッドを使用しています。

  • 埋め込み画像はコントロールの制限ですか、それとも埋め込み画像を表示するために html をロードする特別な方法はありますか?

  • これがコントロールの制限である場合、これ
    を機能させる方法についてのアイデアや提案はありますか?

4

1 に答える 1

1

いくつかの調査と調査の後、私はそれを確認することができます:

  • アプリケーション自体に埋め込まれていない場合、画像やcssなどにリンクされたリソースを含むhtmlファイルをロードすることはできません。

回避策:

  • 別のファイルではなく、htmlファイル内にcssを埋め込みます。
  • リンクされた画像をBase64に変換し、imgタグ内に埋め込みます。
  • 上記の手順を実行すると、アクセス可能な任意の書き込み可能なフォルダにhtmlファイルを保存できるようになります。
  • 次に、htmlファイルの内容を文字列に読み込みます。
  • 最後に、cssと画像が埋め込まれたhtmlをレンダリングするには、上記の手順の文字列をコントロールのNavigateToStringメソッドに渡しますWebView
  • 出来上がり!すべてのスタイルと画像を含むHTMLは、期待どおりにレンダリングされます。

おそらく最善の解決策ではありません。ただし、実装は簡単で、実行可能です。

于 2013-01-31T06:29:16.133 に答える