TextFormatter Sınıf

Tanım

Özel bir metin düzeni istemcisi kullanarak metinleri biçimlendirmeye ve metin satırlarını kesmeye yönelik hizmetler sağlar.

public ref class TextFormatter abstract : IDisposable
public abstract class TextFormatter : IDisposable
type TextFormatter = class
    interface IDisposable
Public MustInherit Class TextFormatter
Implements IDisposable
Devralma
TextFormatter
Uygulamalar

Örnekler

Aşağıdaki örnekte, çizim nesneleri olarak görüntülenebilen biçimlendirilmiş metin satırları oluşturmak için nesnenin TextFormatter nasıl kullanılacağı gösterilmektedir.

// 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

Açıklamalar

TextFormatter , metin biçimlendirme ve metin satırlarını kesmeye yönelik hizmetler sağlayan WPF metin altyapısıdır. TextFormatter farklı metin karakter biçimlerini ve paragraf stillerini işleyebilir ve uluslararası metin düzeni desteği içerir.

Geleneksel metin API'sinin aksine, TextFormatter bir dizi geri çağırma yöntemi aracılığıyla bir metin düzeni istemcisiyle etkileşim kurar. İstemcinin sınıfın bir uygulamasında bu yöntemleri sağlamasını TextSource gerektirir. Aşağıdaki diyagramda, metin biçimlendirici istemcisi ile metin düzeni istemcisinin etkileşimi gösterilmektedir.

Metin düzeni istemcisi ve TextFormatter diyagramı
Metin düzeni istemcisi ile TextFormatter nesnesi arasındaki etkileşim

Metin Biçimlendirme Hizmetleri

TextFormatter OpenType tipografisi gibi metin özelliklerine yönelik desteğin yanı sıra metin çalıştırması, satır ve paragraf düzeyi özellikleri için destek sağlar.

Aşağıdaki tabloda, metin özellikleri için desteklenen temel TextFormatter hizmetlerin listesi yer alır.

Özellik Açıklama
Arka plan fırçası Brush Arka plan rengi için kullanılan. Özelliğine BackgroundBrush bakın.
Temel hizalama Çizginin taban çizgisi uzaklığı belirler. Özelliğine BaselineAlignment bakın.
Yazı tipi bağlama Bileşik yazı tiplerinin kullanımı aracılığıyla yazı tipi bağlama sağlar.
Ön plan fırçası Brush Ön plan rengi için kullanılan. Özelliğine ForegroundBrush bakın.
OpenType Bağlamsal alternatifler ve standart ligatürler gibi gelişmiş OpenType tipografi özellikleri. Sınıf özelliklerine TextRunTypographyProperties bakın.
Yazı Yazı tipinin yanı sıra ağırlığı, stili ve esnetmeyi belirler. Özelliğine Typeface bakın.
Metin dekorasyonu Alt çizgi veya üstü çizili gibi nesneler için TextDecoration destek sağlar. Özelliğine TextDecorations bakın.
Metin efektleri Nesneler için TextEffect destek sağlar. Özelliğine TextEffects bakın.

Aşağıdaki tablo, paragraf düzeyi özellikler için desteklenen temel TextFormatter hizmetlerin listesidir.

Özellik Açıklama
Flow yönü Paragrafın Flow yönü : soldan sağa veya sağdan sola. Özelliğine FlowDirection bakın.
Satır girintisi Paragraftaki her satır için girinti. Özelliğine Indent bakın.
Işaretleyici Paragraftaki ilk satırın işaretleyici özellikleri. Özelliğine TextMarkerProperties bakın.
Paragraf girintisi Paragrafın ilk satırı için girinti. Özelliğine ParagraphIndent bakın.
Sekmeler Sekme hizalama ve sekme öncüsü desteği içerir.
Width En düşük ve en büyük paragraf genişliğini belirleyin. Yöntemlere FormatMinMaxParagraphWidth bakın.
Sözcük kaydırma Metnin akış kenarına ulaştığında nasıl kaydırileceğini belirleyin. Özelliğine TextWrapping bakın.

Aşağıdaki tabloda satır düzeyi özellikler için desteklenen temel TextFormatter hizmetlerin listesi yer alır.

Özellik Açıklama
Hizalama Metin hizalama: sol, sağ, ortalanmış veya iki yana yaslanmış. Özelliğine TextAlignment bakın.
Çizgi yüksekliği Çizginin yüksekliği. Özelliğine Height bakın.
Satır daraltma Hat daraltma desteği. Yöntemine Collapse bakın.
Kara kutu ölçümü Bir karakteri bir cihaz yazı tipinde düzenlemek için kullanılan ölçümleri temsil eder. Sınıfına CharacterMetrics bakın.
Şapka işareti desteği Giriş işareti gezintisi ve düzenleme desteği. TextLine ve GetPreviousCaretCharacterHitgibi GetNextCaretCharacterHit karakter isabet özelliklerine bakın.

Aşağıdaki tablo, metin çalışma düzeyi özellikleri için desteklenen temel TextFormatter hizmetlerin listesidir.

Özellik Açıklama
Gizli çalıştırma Görünür olmayan karakter aralığı. Nesnesine TextHidden bakın.
Yeni Satır ve paragraf kesme.

Oluşturucular

TextFormatter()

TextFormatter sınıfının yeni bir örneğini başlatır.

Yöntemler

Create()

TextFormatter sınıfının yeni bir örneğini oluşturur. Bu statik bir yöntemdir.

Create(TextFormattingMode)

Belirtilen biçimlendirme moduyla sınıfının yeni bir örneğini TextFormatter oluşturur. Bu statik bir yöntemdir.

Dispose()

Nesnesi tarafından TextFormatter kullanılan tüm yönetilen ve yönetilmeyen kaynakları serbest bırakır.

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
FormatLine(TextSource, Int32, Double, TextParagraphProperties, TextLineBreak)

Belge içeriğini biçimlendirmek ve görüntülemek için kullanılan bir TextLine oluşturur.

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

Belge içeriğini biçimlendirmek ve görüntülemek için kullanılan bir TextLine oluşturur.

FormatMinMaxParagraphWidth(TextSource, Int32, TextParagraphProperties)

Belirtilen metin içeriğini tam olarak içerebilen, mümkün olan en küçük ve en büyük paragraf genişliğini temsil eden bir değer döndürür.

FormatMinMaxParagraphWidth(TextSource, Int32, TextParagraphProperties, TextRunCache)

Belirtilen metin içeriğini tam olarak içerebilen, mümkün olan en küçük ve en büyük paragraf genişliğini temsil eden bir değer döndürür.

GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)

Şunlara uygulanır

Ayrıca bkz.