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>

wpf在线天气

时间: 2024-10-10 02:00:56

wpf在线天气的相关文章

使用 WPF+ ASP.NET MVC 开发 在线客服系统 (一)

近段时间利用业余时间开发了一套在线客服系统,期间遇到过大大小小不少问题,好在都一一解决,最终效果也还可以,打算写一个系列的文章把开发过程详细的记录下来. 希望能够和更多的开发人员互相交流学习,也希望有有兴趣的小伙伴一起加入开发当中来,毕竟一个人的力量是有限的 :) 有兴趣的小伙伴请加Q:279060597 系列文章将分为几个部分 零.概述(本篇) 一.需求分析及技术方案初步选型 二.技术方案选型,验证 三.底层框架设计,开发 四.服务器设计开发 五.客户端设计开发 六.Web端设计开发 在这个系

[WPF]静态资源(StaticResource)和动态资源(DynamicResource)

一.文章概述 本演示介绍了WPF的静态资源和动态资源的基本使用,并对两者做了简单的比较. 静态资源(StaticResource)指的是在程序载入内存时对资源的一次性使用,之后就不再访问这个资源了:动态资源(DynamicResource)使用指的是在程序运行过程中然会去访问资源. 相关下载(代码.屏幕录像):http://pan.baidu.com/s/1c0q2BVM 在线播放:http://v.youku.com/v_show/id_XODE4MTI1MzYw.html 温馨提示:如果屏幕

WPF自定义控件(2)——图表设计[1]

0.讲点废话 除了仪表盘控件比较常用外,还有图表也经常使用,同样网上也有非常强大的图表控件,有收费的(DVexpress),也有免费的.但我们平时在使用时,只想简单地绘一个图,控件库里面的许多功能我们都用不到,没必要使用那么功能丰富的控件,以提高程序运行的效率和减小程序的占用空间.同时,我们自己如果能够绘制图表出来,对于程序的移植,也非常方便.对于大部分平台,相信设计方法是不会变的. 1.图表整体设计 简单来看一个图表的组成,一般由4个部分组成,坐标轴,刻度和刻度值,绘图区域(添加数据点和绘制曲

简单天气应用开发——解析HeWeather JSON

借助和风天气API成功获取到了我想要的天气信息,但在怎么提取出我想要的数据上又遇到了问题. {"HeWeather data service 3.0":[{"basic":{"city":"余姚","cnty":"中国","id":"CN101210404","lat":"29.948000","l

WPF快速指导10:WPF中的事件及冒泡事件和隧道事件(预览事件)的区别

本文摘要: 1:什么是路由事件: 2:中断事件路由: 3:自定义路由事件: 4:为什么需要自定义路由事件: 5:什么是冒泡事件和预览事件(隧道事件): 1:什么是路由事件 WPF中的事件为路由事件,所谓路由事件,MSDN定义如下: 功能定义:路由事件是一种可以针对元素树中的多个侦听器(而不是仅针对引发该事件的对象)调用处理程序的事件. 实现定义:路由事件是一个 CLR 事件,可以由 RoutedEvent 类的实例提供支持并由 Windows Presentation Foundation (W

WPF换肤之八:创建3D浏览效果

原文:WPF换肤之八:创建3D浏览效果 上节中,我们展示了WPF中的异步以及界面线程交互的方式,使得应用程序的显示更加的流畅.这节我们主要讲解如何设计一个具有3D浏览效果的天气信息浏览器. 效果显示 下面我们看截图: 是不是能够感受到一种与众不同的感觉.如果你能够感受到它的与众不同,这也是我本节所要达到的目标. 实现方式 上面的只是一个简单的3D图形,它的产生需要依赖于WPF中的MeshGeometry3D对象,这个对象按照微软官方的解释就是用于生成3D形状的三角形基元,它有三个比较重要的属性:

WPF换肤之七:异步

原文:WPF换肤之七:异步 在WinForm时代,相信大家都遇到过这种情形,如果在程序设计过程中遇到了耗时的操作,不使用异步会导致程序假死.当然,在WPF中,这种情况也是存在的,所以我们就需要寻找一种解决方法来让程序界面响应和耗时操作异步进行,那么上述假死的情况就不会发生了. 这一节就着重讲解异步以及线程和界面交互. 异步使用方式(APM模式) 在上节中,我们给一个普通的Window窗口做了换肤处理,呈现出了一个非常酷的时区浏览小工具.当然,这一节,我们还是以那个工具为主,为其增加天气预报功能,

为WPF和Silverlight的Grid添加边框线(zz)

  Grid是WPF和Silverlight中的一个重要的布局元素,其他的布局元素还有StackPanel, Canvas, Border等等.从字面上说,Grid是一个表格的意思,它的使用也确实很方便,从视觉上很像一个表格的样式,有行,有列的概念,这种效果很适合于需要多多个子控件进行布局,并希望保持左边或者上对齐的效果. 我们来看一个最简单的例子(本文采用Silverlight做演示,在WPF中也是一样的) 使用Grid的时候,一般先定义Grid的行和列的设置,然后在其放置其他控件并且设置他们

跟着杨中科循序渐进学习wpf(全)

第一季 C#编程基础 1.用C#编写一个10+20=?的小程序: public static voidMain(tring[] args) { int i1=10; int i2=20; int i3=i1+i2; Console.WriteLine(i3);           //也可用占位符来实现:Console.WriteLine("{0}+{1}={2}",i1,i2,i1+i2);在输出参数较多时候要用占位符 Console.ReadKey();