桌面小工具-在线天气-C#(Wpf)-WebService
效果图,初步的窗体就是这样
鼠标放在天气图标上
WebService:http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx
需要注意:
WeatherWS返回的是string数组操作性太差所以将其转换成一个自定义的类
public class WeatherInfo { public string Province { get; set; } public string City { get; set; } public string CityID { get; set; } /// <summary> /// 最近更新时间 /// </summary> public string UpdateTime { get; set; } /// <summary> /// 天气实况 /// </summary> public string METAR { get; set; } /// <summary> /// 空气质量 /// </summary> public string AQI { get; set; } /// <summary> /// 生活指数 /// </summary> public string COCOLON { get; set; } /// <summary> /// 未来天气 /// </summary> public List<WeatherDay> FutureWeather{get;set;} } public class WeatherDay { /// <summary> /// 天气概况 /// </summary> public string Weather { get; set; } /// <summary> /// 气温 /// </summary> public string Temperature { get; set; } /// <summary> /// 风向 /// </summary> public string Wind { get; set; } /// <summary> /// 天气图标1 /// </summary> public string ICO1 { get; set; } /// <summary> /// 天气图标2 /// </summary> public string ICO2 { get; set; } }
这样一来操作简单了许多,也很清晰。由于天气更新大概每隔3个小时,所以我们没必要每次运行程序时都去请求服务。首次请求后将可将结果序列化(通过上面的类)存入本地文件里,运行程序时返序列化,再与当前时间比较,如果超过3小时就更新天气
<?xml version="1.0"?> -<WeatherInfo xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Province>四川 成都</Province> <City>成都</City> <CityID>1117</CityID> <UpdateTime>2014/07/22 14:43:15</UpdateTime> <METAR>今日天气实况:气温:34℃;风向/风力:东风 2级;湿度:55%</METAR> <AQI>空气质量:暂无;紫外线强度:中等</AQI> <COCOLON>穿衣指数:炎热,建议穿短衫、短裤等清凉夏季服装。 过敏指数:暂无。 运动指数:较适宜,天气较好,较适宜进行各种运动,但因天气热,请适当减少运动时间,降低运动强度。 洗车指数:不宜,有雨,雨水和泥水会弄脏爱车。 晾晒指数:适宜,天气不错,抓紧时机让衣物晒太阳吧。 旅游指数:暂无。 路况指数:干燥,天气较好,路面较干燥,路况较好。 舒适度指数:较不舒适,多云,有些热。 空气污染指数:暂无。 紫外线指数:中等,涂擦SPF大于15、PA+防晒护肤品。</COCOLON><FutureWeather><WeatherDay> <Weather>星期二</Weather> <Temperature>24℃/33℃</Temperature> <Wind>南风微风</Wind> <ICO1>1.gif</ICO1> <ICO2>3.gif</ICO2> </WeatherDay> </FutureWeather> </WeatherInfo>
wpf在线天气
时间: 2024-10-10 02:00:56