0

重複の可能性:
個々の文字に色を付け、適切な間隔/カーニング/配置を維持するにはどうすればよいですか?

GDI+ を使用して、文字列を個々の文字に分割して、文字列内の任意のポイントでフォントの種類、サイズ、または太さを変更できるようにしたいと考えています。

使用例:

  1. ****B****最初の文字を保持しています。

  2. 最初の文字に古い英語のフォントを使用する (つまり、「むかしむかし」 -> 「O」 = 古い英語のフォント)

  3. 文中の特定の単語 (文字のグループ) に下線を引くこと

例が見つかりません。これにアプローチする方法がわかりません。

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
4

1 に答える 1

0

私の知る限り、そのように構築されたものは何もありません...文字ブロックを描画するすべてのロジックを実行する必要があります.1行だけにするのは非常に「簡単」ですが、行末を処理してから書き始めます次の行は難しいかもしれません。

ユーザーがテキストを変更してフォーマットできるようにするために、私が使用するのは RichTextBox です。

RichTextBox の使用を容易にするコントロールがいくつかあります。これはその 1 つです: http://www.codeproject.com/Articles/30799/Extended-RichTextBox

ユーザーが書式を設定できるテキスト エディターを入手したら、それを印刷する必要があります。RichTextBox コンテンツを印刷する方法の例を次に示します。

拡張 RichTextBox コントロールで RichTextBox コンテンツを印刷する魔法を作成するコードを追加できます。

于 2012-12-27T17:16:45.903 に答える