可能重复:
How to color individual characters and maintain proper spacing / kerning / alignment?
使用GDI +,我想将一个字符串分成单个字符,这样我就可以在字符串中的任何位置更改字体类型,大小或重量。
使用示例:
**** B ****第一个角色。
使用旧英文字体作为第一个字符(即“曾几何时” - >“O”=旧英文字体)
在句子中 中强调特定单词(字符组)。
我找不到任何例子。我不确定如何处理这个问题。
Public Class Character
Public Property ID As Integer
Public Property Value As Char
Public Property CharacterFont As Font
Public Property CharacterColor As Brush
Public Sub New()
CharacterFont = New Font("Times New Roman", 12)
End Sub
End Class
...
Public Class CharacterBlock
Private _characters As New List(Of Character)
Public Property Alignment As StringAlignment
Public Sub New()
Alignment = StringAlignment.Center
End Sub
Public Sub New(p_characters As List(Of Character))
Me.New()
_characters = p_characters
End Sub
Public Sub New(p_characters As String)
Me.New()
_characters = (From s In p_characters.ToList Select New Character With {.Value = s}).ToList
End Sub
Public Sub New(p_characters As String, p_font As System.Drawing.Font)
Me.New()
_characters = (From s In p_characters.ToList Select New Character With {.Value = s, .CharacterFont = p_font}).ToList
End Sub
'TODO: Add methods to measure and draw character blocks
End Class
答案 0 :(得分:0)
据我所知,没有任何东西以这种方式构建......你应该完成绘制字符块的所有逻辑,只需一行就可以“轻松”但是处理行的结束并开始写下一行可能很棘手。
为了让用户更改和格式化文本,我将使用的是RichTextBox。
有一些控件使得使用RichTextBox更容易,这是其中之一: http://www.codeproject.com/Articles/30799/Extended-RichTextBox
一旦你有了允许用户格式化的文本编辑器,你需要打印它。 以下是如何打印RichTextBox内容的一些示例:
您可以添加能够在Rich RichTextBox控件中打印RichTextBox内容的神奇代码。