2

私のWPFページには、たとえば、次のような画像(1つ以上)があります。

<Image Source="{Binding Path=PicURL}"/>

また、アプリケーション全体でインターネットプロキシ設定の使用をグローバルにオン/オフに切り替えるオプションのある[設定]ページがあります。手動のWebリクエストについて話す場合、たとえば次のように解決できます。

HttpWebRequest request = ( HttpWebRequest )WebRequest.Create( ... );
if( UseProxy ) request.Proxy.Credentials = CredentialCache.DefaultCredentials; 
               else req.Proxy = null;

ただし、コンテンツがURLに基​​づいており、インターネットプロキシ設定が使用されているImageなどのWPFコントロールでは機能しません。

実行時にアプリ全体 でプロキシをグローバルに切り替える方法はありますか?

4

2 に答える 2

2

あなたは変更できるかもしれませんWebRequest.DefaultWebProxy

それらがあなたの状況で機能しない場合、回避策は、プロキシ設定の有無にかかわらず、WebRequestを使用して自分でWebから「リソース」をダウンロードできることです。

Webリクエストによって返されたデータをストリームとして使用してBitmapImageを初期化し、それをソースに設定するか、一時ファイルに保存してソースがそのローカルファイルを指すようにすることができます。

バインディングに「コンバーター」を記述して使用し、画像のURLからBitmapImageへのダウンロード/変換を行います。状況によっては、MarkupExtensionが可能になる場合もあります。

画像リソースのダウンロードには時間がかかる場合があり、メインUIスレッドをブロックしたくないため、非同期バインディングを使用することをお勧めします。

于 2012-09-04T18:41:38.957 に答える
0

プロキシ設定を設定ファイルにしたい場合は、これを試してください

<?xml version="1.0" encoding="utf-8" ?>
     <configuration>
          <system.net>
              <defaultProxy enabled="true" useDefaultCredentials="true">
                <proxy proxyaddress="http://proxyaddress:port" 
                       usesystemdefault="False" 
                       bypassonlocal="True" 
                       autoDetect="False" />
              </defaultProxy>
          </system.net>
</configuration>

乾杯

于 2014-01-08T04:10:10.323 に答える