CSkin博客

标题: 【开源】GDI手撸一个TextBox [打印本页]

作者: crystal_lz    时间: 2022-8-1 15:57
标题: 【开源】GDI手撸一个TextBox
项目地址:https://github.com/DebugST/STTextBox


STTextBox是一个开源的WinFrom控件,纯GDI绘制,支持Emoji表情符号、所有颜色支持Alpha、并且支持自定义文本样式等。原本应当还有更多的功能,但是由于一些其他原因两个月前就暂停了开发,但是又不想烂在手里,所以删除了一些代码后发布至了GitHub


开发过程中还衍生出另外两个开源项目:

https://github.com/DebugST/emoji-svg-render

https://github.com/DebugST/STGraphemeSplitter

https://blog.csdn.net/crystal_lz/article/details/126096097





文本框中所有的颜色均支持设置Alpha,当然代价就是渲染速度会变慢。



SetTextStyleMonitors可支持多个样式监视器,并且优先级按照先后顺序排列,接口非常灵活,既可以简单也可以非常复杂,截图中的Demo是一个非常简单的实现,因为它仅仅需要监视文本中的StyleDemo关键字即可,然后单独为它制定文本样式。

而内置的CSharpStyleMonitor就是一个复杂的实现。可以看到所有的截图中代码高亮都非常的全面,而不仅仅是.Net语法的关键字,属性 函数 类 符号 数字都被高亮显示了,因为在CSharpStyleMonitor中实现了一个简单的词法分析器用于解析CSharp的语法规则。至于其他语言。。。。累了。。。只想摆烂。。

在STTextBox发布的时候内置了4个样式监视器,分别为:KeyWordStyleMonitor CSharpStyleMonitor LinkStyleMonitor SelectionStyleMonitor,其功能分别为:指定任意关键字和样式、CSharp语法高亮、超链接样式,与被选中单词一样的关键字高亮。



作者: boxxie    时间: 2022-11-29 08:58

学习了,多谢楼主分享哟




欢迎光临 CSkin博客 (http://bbs.cskin.net/) Powered by Discuz! X3.2