FormattedText.BuildGeometry(Point) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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
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.
Przykład ustawienia pociągnięcia i wypełnienia na różne kolory
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.