首页 > 代码库 > wpf在线天气

wpf在线天气

桌面小工具-在线天气-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>