彩色文字對象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