DSAPI 圖形圖像篇(上)

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

  

相關文章
相關標籤/搜索