TextFormatter Klass

Definition

Tillhandahåller tjänster för formatering av text och icke-bakåtkompatibla textrader med hjälp av en anpassad textlayoutklient.

public ref class TextFormatter abstract : IDisposable
public abstract class TextFormatter : IDisposable
type TextFormatter = class
    interface IDisposable
Public MustInherit Class TextFormatter
Implements IDisposable
Arv
TextFormatter
Implementeringar

Exempel

I följande exempel visas hur du använder ett TextFormatter objekt för att generera formaterade textrader som kan visas som ritade objekt.

// Create a TextFormatter object.
TextFormatter formatter = TextFormatter.Create();

// Create common paragraph property settings.
CustomTextParagraphProperties customTextParagraphProperties
    = new CustomTextParagraphProperties();

// Format each line of text from the text store and draw it.
while (textStorePosition < customTextSource.Text.Length)
{
    // Create a textline from the text store using the TextFormatter object.
    using (TextLine myTextLine = formatter.FormatLine(
        customTextSource,
        textStorePosition,
        96 * 6,
        customTextParagraphProperties,
        null))
    {
        // Draw the formatted text into the drawing context.
        myTextLine.Draw(drawingContext, linePosition, InvertAxes.None);

        // Update the index position in the text store.
        textStorePosition += myTextLine.Length;

        // Update the line position coordinate for the displayed line.
        linePosition.Y += myTextLine.Height;
    }
}
' Create a TextFormatter object.
Dim formatter As TextFormatter = TextFormatter.Create()

' Create common paragraph property settings.
Dim customTextParagraphProperties As New CustomTextParagraphProperties()

' Format each line of text from the text store and draw it.
Do While textStorePosition < customTextSource.Text.Length
    ' Create a textline from the text store using the TextFormatter object.
    Using myTextLine As TextLine = formatter.FormatLine(customTextSource, textStorePosition, 96 * 6, customTextParagraphProperties, Nothing)
        ' Draw the formatted text into the drawing context.
        myTextLine.Draw(drawingContext, linePosition, InvertAxes.None)

        ' Update the index position in the text store.
        textStorePosition += myTextLine.Length

        ' Update the line position coordinate for the displayed line.
        linePosition.Y += myTextLine.Height
    End Using
Loop

Kommentarer

TextFormatter är den WPF textmotorn som tillhandahåller tjänster för formatering av text och icke-bakåtkompatibla textrader. TextFormatter kan hantera olika textteckenformat och styckeformat och innehåller stöd för internationell textlayout.

Till skillnad från ett traditionellt text-API interagerar TextFormatter med en textlayoutklient via en uppsättning återanropsmetoder. Det kräver att klienten tillhandahåller dessa metoder i en implementering av klassen TextSource. Följande diagram illustrerar interaktionen mellan textformateringsklienten och textlayoutklienten.

Diagram över textlayoutklient och TextFormatter-diagram Interaktion mellan textlayoutklienten och TextFormatter-objektet

Textformateringstjänster

TextFormatter ger stöd för textfunktioner, till exempel OpenType-typografi, samt stöd för textkörning, rad- och styckenivåfunktioner.

Följande tabell är en lista över de viktiga TextFormatter tjänster som stöds för textfunktioner.

Feature Description
Bakgrundspenslar Det Brush som används för bakgrundsfärgen. Se egenskapen BackgroundBrush .
Baslinjejustering Avgör linjens baslinjeavstånd. Se egenskapen BaselineAlignment .
Teckensnittslänkning Tillhandahåller teckensnittslänkning med hjälp av sammansatta teckensnitt.
Förgrundspenslar Det Brush som används för förgrundsfärgen. Se egenskapen ForegroundBrush .
OpenType Avancerade opentype-typografiska funktioner, till exempel kontextuella alternativ och standardligaturer. TextRunTypographyProperties Se klassegenskaperna.
Typsnitt Avgör typsnitt, samt vikt, stil och stretch. Se egenskapen Typeface .
Textdekoration Ger stöd för TextDecoration objekt, till exempel understrykning eller genomstrykning. Se egenskapen TextDecorations .
Texteffekter Ger stöd för TextEffect objekt. Se egenskapen TextEffects .

Följande tabell är en lista över de viktiga TextFormatter tjänster som stöds för funktioner på styckenivå.

Feature Description
Flödesriktning Flödesriktningen för stycket – från vänster till höger eller från höger till vänster. Se egenskapen FlowDirection .
Rad indrag Indrag för varje rad i stycket. Se egenskapen Indent .
Markör Marköregenskaper för den första raden i stycket. Se egenskapen TextMarkerProperties .
Stycke indrag Indrag för den första raden i stycket. Se egenskapen ParagraphIndent .
Flikar Innehåller stöd för flikjustering och flikledare.
Bredd Fastställ minsta och högsta styckebredd. FormatMinMaxParagraphWidth Se metoderna.
Radbrytning Avgör hur texten radbryts när den når flödeskanten. Se egenskapen TextWrapping .

Följande tabell är en lista över de viktiga TextFormatter tjänster som stöds för funktioner på radnivå.

Feature Description
Justering Textjustering – vänster, höger, centrerad eller berättigad. Se egenskapen TextAlignment .
Linjehöjd Linjens höjd. Se egenskapen Height .
Linjekollaps Stöd för radkollaps. Collapse Se metoden.
Mått för svart ruta Representerar de mått som används för att ange ett tecken i ett enhetsteckensnitt. Se klassen CharacterMetrics.
Caret-support Stöd för caret-navigering och redigering. Se egenskaperna för TextLine teckenträffen, till exempel GetNextCaretCharacterHit och GetPreviousCaretCharacterHit.

Följande tabell är en lista över de viktiga TextFormatter tjänster som stöds för funktioner på textkörningsnivå.

Feature Description
Dold körning Intervall med tecken som inte är synliga. Se objektet TextHidden .
Senaste nytt Rad- och styckebrytning.

Konstruktorer

Name Description
TextFormatter()

Initierar en ny instans av TextFormatter klassen.

Metoder

Name Description
Create()

Skapar en ny instans av TextFormatter klassen. Det här är en statisk metod.

Create(TextFormattingMode)

Skapar en ny instans av TextFormatter klassen med det angivna formateringsläget. Det här är en statisk metod.

Dispose()

Släpper alla hanterade och ohanterade resurser som används av TextFormatter objektet.

Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
FormatLine(TextSource, Int32, Double, TextParagraphProperties, TextLineBreak, TextRunCache)

Skapar en TextLine som används för att formatera och visa dokumentinnehåll.

FormatLine(TextSource, Int32, Double, TextParagraphProperties, TextLineBreak)

Skapar en TextLine som används för att formatera och visa dokumentinnehåll.

FormatMinMaxParagraphWidth(TextSource, Int32, TextParagraphProperties, TextRunCache)

Returnerar ett värde som representerar den minsta och största möjliga styckebredden som helt kan innehålla det angivna textinnehållet.

FormatMinMaxParagraphWidth(TextSource, Int32, TextParagraphProperties)

Returnerar ett värde som representerar den minsta och största möjliga styckebredden som helt kan innehålla det angivna textinnehållet.

GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)

Gäller för

Se även