为什么要自定义?

「添雨跟打器」中的核心功能之一——「词库管理」。这是一个大类。包含有词库添加、删除、自动提示,智能学习,理论码长等功能。用户在跟打过程中,如何以方便,快捷的方式提示给用户?这是一个产品体验上的问题。

早在「老版添雨跟打器」之中,@hwj 帮忙制作了「提词器」。使用的技术很简单,就是在 RichTextBox 上显示 Label ,用来划出不同的线条,颜色。但是缺点很明显。

  1. 渲染效率问题
  2. 显示样式单一

这两个问题都很好解决。但是「效率」和显示的「感观」上的问题仍然有一种,无法让人忍受的问题。例如,在拖动滚动条时,整个显示错位。如果让它们随之滚动,则会存在效率上的问题。两者,似乎存在一种不可兼得的情况。

寻找

为了解决问题。利用搜索引擎,去寻找解决方案。MSDN 是首先的选择。正好,在其上便找到如下一篇 《how to change the underline style》 。里面含有大量的 VB 代码。

手动翻译成 C# 代码如下文。

代码

新建类:

创建结构体:

 引入 Win32 API:

 创建属性:

 使用:

 其它问题

  1. 下划线样式好像并不是每个都有效,像 wave 样式
  2. 颜色方面还没有找到是否可以完全自定义颜色的方式

如果有读者读至此处,了解相关内容,欢迎留言。