摘要: 前段时间在家做自己的个人网页, 由于没心思维护, 所以考虑的是用类似爬虫的手段去抓新闻回来, 这样便经常用到正则表达式. 在家里下载了一个正则工具, 挺好用的, 今天在办公室有点无聊, 于是搬出WPF, 自己又做了一个. 先展示一下效果图:1) 可以输入网页地址, 自动从网页下载数据2) 程序内置了部分表达式, 此处是选择内置的"HTML标签"表达式3) 写完一个表达式后, 可以添加到自定义表达式里面, 方面以后再次使用4) 顶部菜单有个帮助按钮, 是些常见的问题. 我直接从以前用的正则工具里直接拷过来的5. 解决方案截图最后说点闲话:1. 这个工具还是完全采用了MVVM模 阅读全文
posted @ 2013-01-31 17:19 烟灰灰 阅读(3387) 评论(18) 推荐(12) 编辑
摘要: 上一个版本是利用周日休息时间制作的,考虑不充分,开发时间也短,只完成了加载频道列表和播放歌曲的功能.这几天晚上在家进行了部分加工,首先是完善了部分功能,其次对部分不合理的设计进行了重构(还不知道重构得合理不合理).首先看下部分功能截图:首先是搜索功能完成了部分.点击搜索功能会切换到该频道,并加载歌曲放歌.设计时,就把搜索做成了一个模块,频道是一个模块,播放器是一个模块.选中搜索结果,会由搜索模块发出事件消息.频道模块根据选中的搜索结果构造合适的频道,并发出事件通知播放器.播放器根据当前频道再加载歌曲.这样子设计的好处是,模块只需要关心自己的业务逻辑,方便维护.比如,所有对频道的操作都是在频道模 阅读全文
posted @ 2012-11-01 23:36 烟灰灰 阅读(6329) 评论(41) 推荐(20) 编辑
摘要: 对WPF越来越爱.今天早上看到一个开源的音乐播放器 豆瓣电台,下载了源码尝试了一下,功能很强大,样式很漂亮(推荐对WPF有兴趣的童鞋也下载来试下,学习的好机会哦).可惜,他是基于事件驱动的,主窗口cs代码有2000多行,逻辑神马的虽然放在逻辑层,各个窗口又有强引用,还时不时的带着绑定,看着实在是累啊.楼猪一直醉心于MVVM模式,于是就想着怎么给改改.此处先郑重声明:我只是尽量用MVVM来实现和原作者相同的效果,界面素材均是直接从豆瓣电台照搬下来的.果断的建个项目,拖prism,建模块,花了一天时间,居然都可以运行听歌了,实在是佩服我的敲代码速度.先看下效果图:左侧一共5个导航按钮,我准备对应到 阅读全文
posted @ 2012-10-28 23:51 烟灰灰 阅读(9175) 评论(34) 推荐(7) 编辑
摘要: 上次被叫去面试WPF开发,让我重拾了对WPF的兴趣.国庆时候没地方耍,正好在家好好温习了下Prism库,对模块化开发,Region等有了更深的理解.节后上班居然没事做,难道看点花边新闻打发时间么?还是算了吧,太对不起程序员的身份了.楼主在公司上QQ时,总是无法显示正确的地理位置信息,因此加载不了天气预报,路上被淋过几次了,很是不方便呢.然后就考虑自己动手做一个.功能超简单,先上几个图片:附上解决方案目录:说点闲话:1.首先项目实在是太小了,最开始做的时候,本来就想直接拖控件,后来发现个问题.在显示天气数据的时候,可能有10多个文本框需要我去赋值,在后台挨个挨个手写,实在是太累了,而且最怕的就是 阅读全文
posted @ 2012-10-09 17:11 烟灰灰 阅读(6066) 评论(51) 推荐(17) 编辑
摘要: 1.实现功能: 多文件下载.添加下载路径后开始下载文件,实时显示下载进度和下载速度,还可以显示全局速度.可以断点续传.2.效果截图:3.技术细节:1) C#如何下载文件. 在Syetem.Net命名空间下,有一个WebClient类,可以很轻松的实现下载文件功能.实例化该类后,用DownloadFile方法即可以下载文件.该类有一个DownloadProgressChanged事件,用这个事件就可以完成进度条功能了.该类还有一个CancelAsync方法,可以实现下载中的暂停功能. 我们还可以用更底层点的技术.HttpWebRequest类可以发起一个Http请求,请求成功会访问输出的H... 阅读全文
posted @ 2012-09-22 20:11 烟灰灰 阅读(5166) 评论(22) 推荐(12) 编辑
摘要: 最近WPF项目中遇到一个需求,需要给一个RichTextBox添加智能提示(IntelliSense)功能。分析下具体的需求,在用户键入"@"符号时,应该显示一个弹出框,把所有用户列出。用户可以通过键盘、鼠标等进行选择。用户列表可能数据比较多,那么用户还应该可以输入字符进行筛选。用过各种IDE开发工具的童鞋应该对这样的效果很了解了,具体效果如下输入@符号的效果:筛选的效果:再谈谈具体的开发思路.1.如何制作可以实现列表选择功能的弹出框 方法很多,Popup+ListBox可以完美解决.此处我为了省代码,直接用的ListBox2.如何在键入@符号时,将ListBox显示在@符 阅读全文
posted @ 2012-06-30 11:15 烟灰灰 阅读(3188) 评论(7) 推荐(5) 编辑
摘要: 纠结很久的一个问题,经过漫长的排查终于得到了解决.详细情景是这样的: 用WPF做了2个程序A和B,其中A是主程序,B是升级程序.A首先运行,在窗口加载前会连接服务器判断是否有新版本,如果有新版本则先下载服务器端的B程序并覆盖掉本地的B,然后再运行B程序.这样的流程是为了实现升级程序的自更新,一直也运行正常,没什么好说的. 问题出现在有些用户将A程序设置成开机启动后,第一次运行总会出现应用程序崩溃,崩溃是出现在B运行的时候.我在本地尝试后也是出现此情况.如果A程序不需要更新,那么是无需运行B的,但是B每次都会运行.幸好点击"调试程序"后,还能用VS进入调试,发现的问题是启动了 阅读全文
posted @ 2012-06-29 15:53 烟灰灰 阅读(1076) 评论(0) 推荐(0) 编辑
摘要: 最近在项目中遇到远程加载数据的问题,由于服务器采用分页方式返回数据,因此客户端也相应的制作了一个分页控件.代码相对简单,算做入门级的源码.效果如图:初步分析,分页功能只需要3个核心变量:PageIndex,PageSize,TotalCount,2个事件:PageChanging,PageChanged,1个方法InitData.PageIndex:记录当前所在页PageSize:记录每页显示的条目数TotalCount:条目总数由TotalCount和PageSize可以得到PageCountPageChanging事件作为分页的预处理事件,修改事件参数PageChangingEventAr 阅读全文
posted @ 2012-06-19 11:26 烟灰灰 阅读(9859) 评论(8) 推荐(4) 编辑