0

ImageBrushからの作成に問題がありStreamます。次のコードは、を使用して WPF を埋めるために使用されRectangleますImageBrush

        ImageBrush imgBrush = new ImageBrush();
        imgBrush.ImageSource = new BitmapImage(new Uri("\\image.png", UriKind.Relative));
        Rectangle1.Fill = imgBrush;

私がやりたいことは、 a を呼び出して aWebRequestを取得することStreamです。Stream次に、画像を使用して四角形を塗りつぶします。コードは次のとおりです。

        ImageBrush imgBrush = new ImageBrush();
        WebRequest request = WebRequest.Create(iconurl);
        WebResponse response = request.GetResponse();
        Stream s = response.GetResponseStream();
        imgBrush.ImageSource = new BitmapImage(s);  // Here is the problem
        Rectangle1.Fill = imgBrush;

imgBrush.ImageSource問題は、使用して設定する方法がわからないことresponse.GetResponseStream()です。Streamで を消費するにはどうすればよいImageBrushですか?

4

1 に答える 1

0

BitmapImageコンストラクターには、Streamパラメーターとして受け取るオーバーロードがありません。
応答ストリームを使用するには、パラメーターなしのコンストラクターを使用してStreamSourceプロパティを設定する必要があります。

次のようになります。

// Get the stream for the image
WebRequest request = WebRequest.Create(iconurl);
WebResponse response = request.GetResponse();
Stream s = response.GetResponseStream();

// Load the stream into the image
BitmapImage image = new BitmapImage();
image.StreamSource = s;

// Apply image as source
ImageBrush imgBrush = new ImageBrush();
imgBrush.ImageSource = image;

// Fill the rectangle
Rectangle1.Fill = imgBrush;
于 2015-05-09T11:06:34.850 に答える