桌面英语
一个桌面的窗体,在一定频率下切换单词,帮助利用碎片化的时间记单词。方便上班的时候摸鱼划水。效果图。
显示单词的解释和读音,可以发出美式读音和英式读音。设置界面可以设置显示窗体的样式,以及切换频率。
单词设置界面设置循环的单词本,可以新建、删除、重命名等,需要前面勾上钩才算选中。
使用之前需要选定一个文件夹,里面放入txt文件,
单词保存在txt文件中,一个单词占一行。建议一个单词本中的单词不要太多,五十一百个左右。
一直以来没有找到好的单词词典接口,这一次是将模拟网页请求必应词典,从返回来的网页中利用正则表达式解析出需要词典资源。(废老大劲了,正则表达式是真的烦,非逼的我去好好学了下子),然后再将字符串做格式化处理。 使用了两层窗体,第一层是使用 TransparencyKey 属性来实现完全的透,第二层是使用 opopacity 属性来实现透明。 在第一层窗体上使用GDI+将单词绘制在窗体上,这个地方也纠结了许久,原因是透明窗体上的字体有毛边,非常的糊,尝试了很多种解决办法,最后选中了GDI+绘制,并且设置了这个:g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.SingleBitPerPixel;效果勉强够用,第二层窗体主要用来移动和响应一些事件。 灵感来源于一个同类的软件,后面发现它不太好用,就想着自己写一个好了,自己也可以加入一些定制化的东西,主要自己也有这方面的需求,像是在实习的时候,总看着电脑,又很闲,倒不如利用这些时间来记单词,用电脑的时候是不是的瞟几眼加深印象。
总结:
- 使用正则表达式解析字符串
- 使用序列化对象的方式保存配置
- 使用构造函数和委托的方式实现窗体之间的通信
- 多个窗体的协同
不足:
我对c#的winform开发并不专业,只是学校里学到的那些,完全是东拼西凑出来的成品,代码写着写着就变复杂了,耦合度也很高,没有特别注意效率,只求实现,还存在很多不合理之处,对于我自己来说至少是够用了。
感兴趣的朋友可以下载试试下载:https://hqzqaq.lanzoui.com/iwWNoqlm8eb 密码:457w
点击运行:
desktopEnglish\desktopEnglish\bin\Release\netcoreapp3.1\desktopEnglish.exe
之后在窗体中单击鼠标右键,点击设置,在单词设置中选择单词文件夹,文件夹中需要放入.txt文件,文件中一个单词占据一行。也可以选择 desktopEnglis\单词 文件夹,其中的 word.txt 为2021考研英语词汇。在码云上也开源了,desktopEnglish: c# winform 桌面英语 (gitee.com)希望有兴趣的人能帮忙完善。
更新:
- 新增随机播放
- 新增取消置顶
- 新增托盘图表退出
- 常规设置界面优化
- 默认单词文件夹路径
- 链接:外链:https://hqzqaq.lanzoui.com/b010kp0sf 密码:g9gq
2021-08-03 更新:
1. 响应@困惑的一说 的要求,新增原文输出功能。.txt文件中包含中文需要将txt文件另存为 utf-8 的格式,如下图所示。不然会出现中文乱码的问题。文件中的每一行,作为窗体显示的内容。
2.右键窗体,弹出的菜单中选择原文输出的模式,如下图所示。
3.使用原文输出模式,将根据设置的字符间隔断行,默认为20,可以在设置窗体中修改。
一个文件中不要存放太多行
2021-8-18 更新:
1、增加单词切换时自动播放读音的模式。
2、使用原文输出模式时,自动播放读音的模式将失效。
2022-02-23 更新:
1、修复取消置顶失效问题
2、修复取消置顶后字体颜色暗淡问题