12

Web からイメージ コントロールにイメージをロードしようとしている以下のコードを取得しました。実行すると、指定された行にネットワーク アクセスが許可されていないというエラーが表示されます。

private void button1_Click(object sender, RoutedEventArgs e)
        {
            WebClient webClientImgDownloader = new WebClient();
            webClientImgDownloader.OpenReadCompleted += new OpenReadCompletedEventHandler(webClientImgDownloader_OpenReadCompleted);
            webClientImgDownloader.OpenReadAsync(new Uri("http://dilbert.com/dyn/str_strip/000000000/00000000/0000000/000000/80000/5000/100/85108/85108.strip.print.gif", UriKind.Absolute));
        }

        void webClientImgDownloader_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
        {
            BitmapImage bitmap = new BitmapImage();
            bitmap.SetSource(e.Result); // ERROR HERE!
            image1.Source = bitmap;
        }

Windows Phone 7 用の Silverlight

4

4 に答える 4

12

WebClient を使用してコンテンツをダウンロードしようとすると、ソース サーバーにクライアント アクセス ポリシー ファイルが存在する必要があります。画像の場合、次のようにすることでこの要件を回避できます。

private void button1_Click(object sender, RoutedEventArgs e)
{
    Uri uri = new Uri("http://dilbert.com/dyn/str_strip/000000000/00000000/0000000/000000/80000/5000/100/85108/85108.strip.print.gif", UriKind.Absolute)
    image1.Source = new BitmapImage(uri);
}
于 2010-03-16T15:16:49.437 に答える
3

画像を取得しているようですDilbert.comが、そのサイトにはクロス ドメイン ポリシー ファイルがありますか?

于 2010-03-16T14:39:18.237 に答える
1

Silverlight は JPG のみの GIF をサポートしていないため、次のように記述しました。

www.lenniedevilliers.net/displaygif.aspx?link= http://dilbert.com/dyn/str_strip/000000000/00000000/0000000/000000/80000/5000/100/85108/85108.strip.print.gif

displaygif.aspx ページは、GIF を JPG に変換します。

于 2010-03-16T15:25:02.283 に答える
0

完全な例外スタック トレースを教えてください。エラーは、電話エミュレーターがインターネットにアクセスできないか、サイトから発信されたものではない匿名の要求を許可しない dilbert サーバー上の画像である可能性があります...したがって、解決策に関するガイダンスは異なります:-)

于 2010-03-16T14:40:02.603 に答える