Windows Phone OS 7.1からWebBrowserコントロールでもData URI Schemeを使えるようになりました。Windows Phone OS 7.0のIE MobileのレンダリングエンジンがIE7相当、7.1はIE9相当という事情もありそうです。
Data URI Schemeは、IETFにて制定された仕様(RFC2397)で、例えばimgタグから画像を参照する場合は下記のようにURIを指定していました。
|html| ||<
Data URI Schemeがサポートされたことによって、画像データを「data:image/png;base64,iVBOR…(中略)…ORK5CYII=」とURI形式で表現出来るようになりました。
|html| ||<
メリットとしては、htmlファイルをダウンロード後に画像ファイルをダウンロードしにいく必要がなくなるという点でしょうか。デメリットとしてはhtmlファイルのサイズが大きくなってしまう点ですが、日本では回線速度の向上やWi-Fiの普及によって気にならないと思います。
以下のようなHTMLを用意しました。全文は載せられないのでこちらのテストページのソースを見て頂けるでしょうか。
|html|
テストページです。
||<
今回はソースコードはあまり重要ではなく、OnNavigatedToでWebBrowser.Navigateメソッドを呼んでいるだけですので省略します。
画像ファイルをBase64形式の文字列への変換は、フリーウェアのツールを使って出来ます。オンラインツールも数多く存在しています。下記のサービスもそのひとつです。
-http://blog.thingslabo.com/archives/000058.html
**(蛇足)
もっとも.NET Frameworkの技術を使うのであれば、System名前空間のConvert.ToBase64Stringメソッドを使って、byte型配列からBase64形式の文字列へ変換も可能です。
「WebBrowserコントロールでローカルのコンテンツを表示する」にて、WebBrowser.NavigateToStringメソッドで表示させたHTMLからローカルリソースの画像ファイルを「<img src="hoge.jpg" />」のような形で参照する事が出来ません。
ローカルリソースをBase64形式へ変換して、html文字列に差し込んで、WebBrowser.NavigateToStringメソッドでhtmlを表示させることをしても良いかもしれません。