WP7绑定图像控件到需要cookie的图像URI

时间:2012-08-09 19:21:26

标签: c# image windows-phone-7 xaml webclient

我正在开发一个使用需要登录的RESTful Web服务的应用程序。此登录信息已通过会话Cookie验证,并使用WebClient下载任何数据,我使用了以下扩展程序:

public class CookieWebClient : WebClient
{
    [SecuritySafeCritical]
    public CookieWebClient() : base()
    {
    }

    protected override WebRequest GetWebRequest(Uri address)
    {
        var request = base.GetWebRequest(address);
        if (request is HttpWebRequest)
        {
            (request as HttpWebRequest).CookieContainer = App.GlobalCookieContainer;
        }
        return request;
    }
}

但是,返回的一些数据是用于显示在不同ListBoxes中的图像缩略图的URI。在我必须使用登录进行Web服务之前,我只是将ImageSource绑定到数据中的指定URI:

<Image Source="{Binding Icon_Url}" />

但是,现在我必须使用登录,我必须在获取图像时提供cookie。因此,我认为IValueConverter可以做到这一点,我会传入URI,然后用我的扩展BitmapImage下载WebClient,直到我重新计算我只能在WP7上使用WebClient进行异步调用。

所以我的问题是

如何下​​载Image中必须在请求中包含Cookie的LisBoxItem个控件的图像?

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用http类下载图像并手动设置图像:

var stream = httpResponse.GetResponseStream(); 
var bitmap = new BitmapImage();
bitmap.SetSource(stream);
image.Source = bitmap;

但这不适用于简单的XAML绑定...(但你可以将这个逻辑包装在附加属性中)