在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
-------------201610212046更新------------- 更新至2.0版,基本完全重写,重点:
项目已更新至开源仓库,有需要请自取。看图: -------------201608301610更新------------- 根据几位猿友在评论中反馈的问题和建议做了更新,主要内容:
原文和网盘demo我就不更新了,项目已开源到如下几处,有兴趣的朋友请关注,欢迎fork/push/pull:
-------------原文------------- 注:本组件适用于.net2.0+的winform项目 样子:实际效果比这gif顺滑,建议下载文末的Tester体验 介绍:如图所见,这种提示在网页、手机上用的较多,相比正经的消息框(如MessageBox),我认为好处有:
这就是我所谓的【轻快型消息提示窗】,适用于: 特点:
用法://开闭上浮动画。默认开启 MessageTip.AllowFloating = true|false; //默认停留时长(毫秒)。当ShowXXX中指定负值delay时,使用该值,默认500 MessageTip.DefaultDelay = int; //文本(可为null或"",下同)、图标(为null时不显示图标)、停留时长(可选,下同,负值则使用DefaultDelay) MessageTip.Show("阿斯蒂芬", image | null, [delay]); //文本,内置的绿勾图标,停留时长 MessageTip.ShowOk("执行成功", [delay]); //文本,内置的黄色感叹号图标,停留时长 MessageTip.ShowWarning("执行成功", [delay]); //文本,内置的红叉图标,停留时长 MessageTip.ShowError("执行成功", [delay]); 背景:这东西我很早就想写了,因为很多时候正儿八经的弹出个MessageBox会影响心情,本来就是告知一声的事情,非得要去点一下确定,烦人,但因为一直有各种破事,到今天才弄。一开始是用AnimateWindow这个win32 API实现(MSDN),但它没有上浮的效果,所以干脆自己实现,原理无非是步进修改窗体的透明度(Opacity)和位置(Location),只是采用了异步的手段。异步在两个地方有使用,一是改变Location,目的是不让它与透明度动画打架;二是Show窗体时也是异步,目的是从线程层面完全与主UI线程隔离,达到快速Show出多个消息的效果,如图: 不然就只能等一个消息完全消失完才能显示下一个,并且在主线程Show的话,有可能阻塞用户的其它操作。 最后,恳请指出问题,或告知已有的更好方案,感谢! 工程已放网盘,里面有个Tester供你体验,就是第一幅图那个。http://pan.baidu.com/s/1dEVjzMD -文毕- |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论