FormattedText.BuildGeometry(Point) Metoda

Definicja

Geometry Zwraca obiekt reprezentujący sformatowany tekst, w tym wszystkie glify i dekoracje tekstu.

public:
 System::Windows::Media::Geometry ^ BuildGeometry(System::Windows::Point origin);
public System.Windows.Media.Geometry BuildGeometry (System.Windows.Point origin);
member this.BuildGeometry : System.Windows.Point -> System.Windows.Media.Geometry
Public Function BuildGeometry (origin As Point) As Geometry

Parametry

origin
Point

Lewy górny początek wynikowej geometrii.

Zwraca

Geometry

Reprezentacja Geometry obiektu sformatowanego tekstu.

Przykłady

W poniższym przykładzie pokazano, jak utworzyć FormattedText obiekt i pobrać geometrie sformatowanego tekstu i jego pola ograniczenia.

/// <summary>
/// Create the outline geometry based on the formatted text.
/// </summary>
public void CreateText()
{
    System.Windows.FontStyle fontStyle = FontStyles.Normal;
    FontWeight fontWeight = FontWeights.Medium;

    if (Bold == true) fontWeight = FontWeights.Bold;
    if (Italic == true) fontStyle = FontStyles.Italic;

    // Create the formatted text based on the properties set.
    FormattedText formattedText = new FormattedText(
        Text,
        CultureInfo.GetCultureInfo("en-us"),
        FlowDirection.LeftToRight,
        new Typeface(
            Font,
            fontStyle,
            fontWeight,
            FontStretches.Normal),
        FontSize,
        System.Windows.Media.Brushes.Black // This brush does not matter since we use the geometry of the text. 
        );

    // Build the geometry object that represents the text.
    _textGeometry = formattedText.BuildGeometry(new System.Windows.Point(0, 0));

    // Build the geometry object that represents the text highlight.
    if (Highlight == true)
    {
        _textHighLightGeometry = formattedText.BuildHighlightGeometry(new System.Windows.Point(0, 0));
    }
}
''' <summary>
''' Create the outline geometry based on the formatted text.
''' </summary>
Public Sub CreateText()
    Dim fontStyle As FontStyle = FontStyles.Normal
    Dim fontWeight As FontWeight = FontWeights.Medium

    If Bold = True Then
        fontWeight = FontWeights.Bold
    End If
    If Italic = True Then
        fontStyle = FontStyles.Italic
    End If

    ' Create the formatted text based on the properties set.
    Dim formattedText As New FormattedText(Text, CultureInfo.GetCultureInfo("en-us"), FlowDirection.LeftToRight, New Typeface(Font, fontStyle, fontWeight, FontStretches.Normal), FontSize, Brushes.Black) ' This brush does not matter since we use the geometry of the text.

    ' Build the geometry object that represents the text.
    _textGeometry = formattedText.BuildGeometry(New Point(0, 0))

    ' Build the geometry object that represents the text highlight.
    If Highlight = True Then
        _textHighLightGeometry = formattedText.BuildHighlightGeometry(New Point(0, 0))
    End If
End Sub

Uwagi

Gdy tekst jest konwertowany na Geometry obiekt, nie jest już kolekcją znaków — nie można modyfikować znaków w ciągu tekstowym. Można jednak wpływać na wygląd przekonwertowanego tekstu, modyfikując jego pociągnięcie i właściwości wypełnienia.

W poniższych przykładach przedstawiono kilka sposobów tworzenia efektów wizualnych przez zmodyfikowanie pociągnięcia i wypełnienia przekonwertowanego tekstu.

Tekst o różnych kolorach wypełnienia i pociągnięcia Przykład ustawienia pociągnięcia i wypełnienia na różne kolory

Tekst z pędzlem obrazu zastosowanym do pociągnięcia Przykład pędzla obrazu zastosowanego do pociągnięcia

Tekst przekonwertowany na i renderowany jako Geometry obiekt może nie wyglądać tak samo jak tekst renderowany bezpośrednio:

  • Tekst przekonwertowany na Geometry obiekt nie jest renderowany przy użyciu funkcji ClearType. Ponadto linia bazowa przekonwertowanego obiektu nie jest przyciągana do całego piksela wyświetlania.

  • Małe czcionki, takie jak te powszechnie używane w tekście tekstowym, mogą utracić czytelność, pojawiać się rozmyte i różnić się wyglądem.

Dotyczy