2012-04-02 17 views
2

私のC#プログラムはWebブラウザコントロールを使用しており、html文字列変数からプログラムを読み込んでhtmlプロパティをプログラムで設定しています。これはほとんどうまくいくが、CSSファイルへの参照が失われていることに気づいた。私は最も簡単な解決策は、CSSファイルのパスを絶対にすることだと思うが、私はそれがCの実行可能ファイルに相対的なままにしておきたい。私はどのようにこのようなコンテキストでのCSSファイルへのHTML参照を聞かせてください。cssをhtmlに動的に読み込むには?

ありがとうございます。

編集:申し訳ありません。私のC#アプリケーションは、Webブラウザコントロールを使用していますが、デスクトップアプリケーションです。 編集:コードを入力してみましょう。私はまずhtmlファイルから文書をロードし、それを変数に格納し、2回目以降は変数から文書をロードします。あなたはそれがそのが解決考えるもののパスを見て持っている必要があり

//first load 
    web_browser_control.Url = new Uri(dir + @"\HTML\default1.html"); 

    void wB2_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 
    { html_string = web_browser_control.DocumentText; } 

    //second load or later 
    web_browser_control.DocumentText = html_string; 
+0

*なぜCSSファイルへの参照が失われますか?説明できますか? –

+0

aspxページでスタイルシートまたはスタイルタグ経由でCSSを設定しないのはなぜですか? – Raghav

+0

@George私は、Webコントロールにロードされたhtml文字列がローカルファイルシステム内のアドレスを持たないと思います。 –

答えて

2

あなたには、いくつかのコードを含めてくださいすることができれば、それが最善だろう、チャンスはそのあなたがそのは外の実行としてそれだと思うところに解決されていませんbinディレクトリ(あなたのパスは、実行ファイルとhtmlのパスに相対して正しいパスです)、

たとえば、htmlは、それが現在の場所を見ているか、現在は別のディレクトリにあるので、相対パスが今は時代遅れですか?

さらに多くのコードが役に立つでしょうし、使用しているコントロールの表示です。

2

CSSファイルのプロパティを "content"に変更し、プロパティを "出力ディレクトリにコピー" - "always"とすると、wepアプリのdllはcssファイルと同じディレクトリにあります。 また、MapPathメソッドを使用することもできます。

関連する問題