欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C# Winform模仿百度日历

程序员文章站 2022-07-11 10:52:13
想写博客不知道从何处开始,就从回忆开始吧. 第一个就从自定义日历控件开始 产生背景: 大概2015年时候有个项目要用到日历,用默认日历展示给用户看,用户毫不客气都说界面太丑,最好做成像百度日历那样方便使用。 花费了一些时间感觉模仿相似度达到95%,模糊不清楚是因为图片被压缩了,浏览器中看图片还是挺正... ......

想写博客不知道从何处开始,就从回忆开始吧.

 

第一个就从自定义日历控件开始

产生背景:

大概2015年时候有个项目要用到日历,用默认日历展示给用户看,用户毫不客气都说界面太丑,最好做成像百度日历那样方便使用。

花费了一些时间感觉模仿相似度达到95%,模糊不清楚是因为图片被压缩了,浏览器中看图片还是挺正常的。

最终效果如下:

 C# Winform模仿百度日历

 

最开始都想法是做成一个网页版百度日历,然后用webbrowser加载,因为这样相对容易些,下图是用bs实现

C# Winform模仿百度日历

实现是实现了,功能也满足, 开发人员使用起来不方便,最关键都是 用webbrowser重量级的东西来搞这个心里难受。

 

在第二版本中使用gdi+来绘制,遇到不少问题在此记录

1、tooltip提示展示位置和外观绘制,以及焦点问题。

2、combobox外观处理,点击其他地方自动消失,点击滚动条需要继续。

3、hook都使用分为 32位和64位。

4、gdi+绘制图形 容易闪烁。

5、每天在桌面创建快捷方式,绘制当前日期图标(.ico)作为快捷方式的图标,因为系统缓存缘故图标却不发生变化。

 

在下篇版本分析逐个问题解决,当前效果如下,感觉录制有些不流畅

C# Winform模仿百度日历