'' This code is part of Document Solutions for Word demos.
'' Copyright (c) MESCIUS inc. All rights reserved.
Imports System.Drawing
Imports GrapeCity.Documents.Word

'' This sample demonstrates how to create, specify and apply
'' character styles.
'' It creates a paragraph of text, splits it into two runs,
'' then creates And applies two different character styles
'' to the two runs.
'' The part creating And splitting the paragraph Is based
'' on the FormatChars sample.
Public Class CharacterStyles
    Function CreateDocx() As GcWordDocument
        '' Get a sample paragraph of text:
        Dim lorem = LoremIpsumPar()
        '' The code below is similar to FormatChars code that creates and splits a paragraph:
        Dim doc = New GcWordDocument()
        Dim p = doc.Body.Paragraphs.Add(lorem)
        Dim r = p.GetRange()
        Dim run = r.Runs.First
        Dim text = run.GetRange().Texts.First
        Dim tIpsum = text.Split(lorem.Length / 2)
        Dim rIpsum = run.Split(tIpsum, InsertLocation.Before)
        '' We now have two runs, create and apply different styles to each:
        '' Create a new char style "Lorem" for the first half:
        Dim sLorem = doc.Styles.Add("Lorem", StyleType.Character)
        sLorem.Font.Name = "Times New Roman"
        sLorem.Font.Size = 16
        sLorem.Font.Bold = True
        sLorem.Font.Italic = True
        sLorem.Font.Underline = Underline.Thick
        '' 'text' was split into 2 halves, but the head can be still
        '' accessed via the 'text' variable. We set its style to the
        '' newly created style (the style of the 2nd half remains default):
        text.ParentRun.Style = sLorem
        '' Create a new char style "Ipsum" for the 2nd half:
        Dim sIpsum = doc.Styles.Add("Ipsum", StyleType.Character)
        sIpsum.Font.Name = "Gabriola"
        sIpsum.Font.Size = 18
        sIpsum.Font.Color.RGB = Color.BlueViolet
        rIpsum.Style = sIpsum
        '' Done:
        Return doc
    End Function
End Class