Windows フォーム アプリにコンテンツを表示するために、winforms webbrowser コントロールを使用しています。DocumentText プロパティを使用して、生成された HTML を記述しています。その部分は見事に機能しています。ここで、マークアップでいくつかの画像を使用したいと考えています。(リンクされた CSS と JavaScript も使用したいと思いますが、埋め込むだけで回避できます。)
私は数日間グーグルで検索してきましたが、タイトルの質問に対する答えが見つからないようです.
相対参照を使用してみました: アプリの exe は bin\debug にあります。イメージは、プロジェクトのルートにある "Images" ディレクトリにあります。コンパイル時にイメージを出力ディレクトリにコピーするように設定したので、最終的には bin\debug\Images* になります。したがって、この「画像...」のような参照を使用して、exeに関連すると考えています。しかし、埋め込みブラウザ ウィンドウで画像のプロパティを見ると、画像の URL が「about:blankImages/*」になっていることがわかります。HTML がコントロールに書き込まれると、すべてが「about:blank」に関連しているように見えます。場所のコンテキストがないため、相対ファイル リソースの参照に何を使用すればよいかわかりません。
これを修正するために何かを設定する方法があるかどうかを確認するために、コントロールのプロパティを調べました。空白の html ページを作成し、ファイルへの完全なローカル パスを使用して、"Navigate()" メソッドを使用してブラウザをそのページに向けました。これは、空のページへのローカル「file:///...」パスを報告するブラウザーで正常に機能しました。次に、今度は Document.Write() を使用して、再びブラウザーに書き込みました。繰り返しますが、ブラウザは URL として「about:blank」を報告します。
動的 HTML の結果を実際のファイルに書き込む以外に、ファイル リソースを参照する方法はありませんか?
最後に、画像への絶対ファイル パスを作成し、それらを HTML に書き込みます。私の HTML は、シリアル化されたオブジェクトの XML の XSL 変換を使用して生成されているため、いくつかの XSL パラメータをいじる必要があります。