Aracılığıyla paylaş


FormattedText.BuildGeometry(Point) Yöntem

Tanım

Tüm glifler ve metin süslemeleri dahil olmak üzere biçimlendirilmiş metni temsil eden bir Geometry nesne döndürür.

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

Parametreler

origin
Point

Elde edilen geometrinin sol üst kaynağı.

Döndürülenler

Geometry Biçimlendirilmiş metnin nesne gösterimi.

Örnekler

Aşağıdaki örnekte, bir FormattedText nesnenin nasıl oluşturulacağı ve biçimlendirilmiş metnin geometrilerinin ve sınırlayıcı kutusunun nasıl alınacağı gösterilmektedir.

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

Açıklamalar

Metin bir Geometry nesneye dönüştürüldüğünde, artık bir karakter koleksiyonu değildir; metin dizesindeki karakterleri değiştiremezsiniz. Ancak, kontur ve dolgu özelliklerini değiştirerek dönüştürülen metnin görünümünü etkileyebilirsiniz.

Aşağıdaki örneklerde, dönüştürülen metnin konturunu ve dolgusunu değiştirerek görsel efektler oluşturmanın çeşitli yolları gösterilmektedir.

Dolgu ve kontur için farklı renklerde metin Kontur ve dolguyu farklı renklere ayarlama örneği

Kontura resim fırçası uygulanmış metin Kontura Vuruşa uygulanan resim fırçası örneği

Nesnesine dönüştürülen ve nesne olarak Geometry işlenen metin, doğrudan işlenen metinle aynı görünmeyebilir:

  • Nesneye Geometry dönüştürülen metin ClearType kullanılarak işlenmez. Buna ek olarak, dönüştürülen taban çizgisi tüm ekran pikseline tutturılmaz.

  • Gövde metninde yaygın olarak kullanılanlar gibi küçük yazı tipleri okunabilirliği kaybedebilir, bulanık görünebilir ve görünümde değişiklik gösterebilir.

Şunlara uygulanır