彩色文字对象html
基于一些特殊需求,本人开发了彩色文字对象,该功能经过相似html代码的方式指示文本,并输出图像.字体
咱们仍是先来看一张图像.指针
这不是文本,是经过指定文本代码输出的图像.咱们来看一下实现代码.orm
Dim DSL As New DSAPI.图形图像.彩色文字图像 With DSL .画布尺寸 = Me.Size '告诉彩色文字引擎最宽能画到多少 .绘制描边 = True .绘制阴影 = True .描边颜色 = Color.Black .文字清晰度 = Drawing.Text.TextRenderingHint.AntiAliasGridFit .文字颜色 = Color.Yellow .阴影大小 = 5 .阴影浓度 = 30 .阴影偏移量 = New Point(0, 0) .字符行距 = 3 .字符间距 = 1 .连接下划线颜色 = Color.Red .字体 = New Font("宋体", 9) Dim S As String = "你好,我是<color=255,0,255>彩</color><color=0,255,255>色</color><color=0,255,0>文</color><color=0,0,255>字</color>" S &= vbCrLf & "<color=255,255,255>这是<b>粗体</b>,这是<i>斜体</i>,还有<u>下划线</u>" S &= vbCrLf & "还能插入<font=微软雅黑>其余字体</font></color>" S &= vbCrLf & "若是你愿意,还能加入<color=0,255,0><link=http://www.baidu.com>连接</link></color>" .代码文本 = S Me.BackgroundImage = .输出图像
是否是让你想到了游戏里的字幕呢?是的,只要效果实现了,你想用在哪里均可以.但同时你也注意到了,里面有连接代码.既然只是图片,这个连接有什么用呢?固然了,图片确定是要设置给某个控件的,否则哪里显示图片呢?连接是带有坐标信息的,当你的代码中使用到了连接,那么你能够在控件的MouseMove或者MouseDown事件里检测鼠标位置是不是连接,而且是什么连接.
一切属性的设置,都将在获取输出图像时应用.因此,若是你须要获取显示的文本,也就是去除了代码的文本内容,那么你须要先获取输出图像后再输出显示文本.htm
Me.BackGroundImage=DSL.输出图像 Console.WriteLine(DSL.显示文本)
输出结果:对象
你好,我是彩色文字 这是粗体,这是斜体,还有下划线 还能插入其余字体 若是你愿意,还能加入连接
连接的获取blog
Private Sub Form1_MouseDown(sender As Object, e As MouseEventArgs) Handles Me.MouseDown Dim 连接 As DSAPI.图形图像.彩色文字图像.连接 = DSL.获取指定坐标的连接(e.Location) If 连接 IsNot Nothing Then '若是鼠标指针位置有连接,则显示连接信息 MsgBox(连接.LinkTarget) End If End Sub Private Sub Form1_MouseMove(sender As Object, e As MouseEventArgs) Handles Me.MouseMove Dim 连接 As DSAPI.图形图像.彩色文字图像.连接 = DSL.获取指定坐标的连接(e.Location) If 连接 IsNot Nothing Then '若是鼠标指针位置有连接,则为手型 Me.Cursor = Cursors.Hand Else '反之为箭头 Me.Cursor = Cursors.Default End If End Sub