C# 创建转换器以获取ID并在Silverlight中创建图像

C# 创建转换器以获取ID并在Silverlight中创建图像,c#,silverlight,xaml,gif,ivalueconverter,C#,Silverlight,Xaml,Gif,Ivalueconverter,我正在使用WCF天气服务并接收天气信息,如ID、描述和图像。它返回的结果如下: <WeatherDescription> <WeatherID>1</WeatherID> <Description>Thunder Storms</Description> <PictureURL> http://ws.cdyne.com/WeatherWS/Images/thunderstorms.gif

我正在使用WCF天气服务并接收天气信息,如ID、描述和图像。它返回的结果如下:

<WeatherDescription>
    <WeatherID>1</WeatherID>
    <Description>Thunder Storms</Description>
    <PictureURL>
     http://ws.cdyne.com/WeatherWS/Images/thunderstorms.gif
    </PictureURL>
</WeatherDescription>

1.
雷暴
http://ws.cdyne.com/WeatherWS/Images/thunderstorms.gif
现在在XAML中,我在dataGrid中显示数据,如下所示:

<sdk:DataGridTextColumn Header="ID" Binding="{Binding WeatherID}" />

上述绑定是服务的另一个函数,该函数返回7天的天气预报,但返回与天气描述相同的天气ID。我在代码端创建了一个包含所有天气描述的数组,如下所示:

public partial class MainPage : UserControl
{
    //array of weather descriptions
    private WeatherDescription[] weatherInformation;

    WeatherSoapClient weatherClient = new WeatherSoapClient();

    public MainPage()
    {
        InitializeComponent();
        weatherClient.GetWeatherInformationCompleted += new EventHandler<GetWeatherInformationCompletedEventArgs>(weatherClient_GetWeatherInformationCompleted);
        weatherClient.GetWeatherInformationAsync();
    }

    void weatherClient_GetWeatherInformationCompleted(object sender, GetWeatherInformationCompletedEventArgs e)
    {
        weatherInformation = e.Result;
    }
}
public部分类主页面:UserControl
{
//天气描述数组
私人天气描述[]天气信息;
WeatherSoapClient weatherClient=新的WeatherSoapClient();
公共主页()
{
初始化组件();
weatherClient.GetWeatherInformationCompleted+=新事件处理程序(weatherClient\u GetWeatherInformationCompleted);
GetWeatherInformationAsync();
}
void weatherClient_GetWeatherInformationCompleted(对象发送方,GetWeatherInformationCompletedEventArgs e)
{
天气信息=e.结果;
}
}
  • 我想做的是创建一个转换器,从该列获取ID,并使用天气描述中提供的URL将其转换为图像

  • 我知道Silverlight不支持GIF,所以我想将该图像发送给处理程序,将其转换为JPG

  • 对于Silverlight和C#来说,这两件事都是全新的,我真的有点麻烦。提前感谢您的帮助!代码片段对我来说是最好的帮助,因为我还不太懂C

  • 对于转换器,您可以执行以下操作:

    <WeatherDescription>
        <WeatherID>1</WeatherID>
        <Description>Thunder Storms</Description>
        <PictureURL>
         http://ws.cdyne.com/WeatherWS/Images/thunderstorms.gif
        </PictureURL>
    </WeatherDescription>
    

    
    ...
    ...
    
  • 在转换器的实现中,我将使用ImageTools库()在GIF和PNG之间进行转换(PNG的质量将优于JPEG)

  • (对不起,我的英语不好)天气服务可能只返回少量图像,因此您可以下载所有图像,转换为png并包含在您的xap中,并将它们命名为1.png、2.png等。现在您只需要一个简单的转换器来获取ID并查找图像。。。我知道这不是你想要的,但也许它可以帮助你实现你想要的:)