桌面英语——上班摸鱼记单词

3次阅读
没有评论

桌面英语
一个桌面的窗体,在一定频率下切换单词,帮助利用碎片化的时间记单词。方便上班的时候摸鱼划水。效果图。

显示单词的解释和读音,可以发出美式读音和英式读音。设置界面可以设置显示窗体的样式,以及切换频率。

单词设置界面设置循环的单词本,可以新建、删除、重命名等,需要前面勾上钩才算选中。

使用之前需要选定一个文件夹,里面放入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、修复取消置顶后字体颜色暗淡问题

正文完
 0
116博客
版权声明:本篇文章由 116博客 于2024-11-30发表,共计1515字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
验证码