FormattedText.BuildGeometry(Point) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Gibt ein Geometry-Objekt zurück, das den formatierten Text, einschließlich aller Symbole und Textdekorationen, darstellt.
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
Parameter
- origin
- Point
Der linke obere Ursprung der resultierenden Geometrie.
Gibt zurück
Die Geometry-Objektdarstellung des formatierten Texts.
Beispiele
Das folgende Beispiel zeigt, wie Sie ein FormattedText Objekt erstellen und die Geometrien des formatierten Texts und dessen Begrenzungsrahmen abrufen.
/// <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) fontWeight = FontWeights.Bold;
if (Italic) 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)
{
_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
Hinweise
Wenn Text in ein Geometry Objekt konvertiert wird, handelt es sich nicht mehr um eine Auflistung von Zeichen. Sie können die Zeichen in der Textzeichenfolge nicht ändern. Sie können jedoch die Darstellung des konvertierten Texts durch Ändern der Strich- und Füllungseigenschaften ändern.
Die folgenden Beispiele zeigen verschiedene Möglichkeiten zum Erstellen von visuell ansprechenden Effekten durch Ändern von Strich und Füllung des konvertierten Texts.
Beispiel für das Festlegen von Strich und Füllung auf verschiedene Farben
Beispiel für einen Bildpinsel, der auf den Strich angewendet wird
Text, der in ein Geometry Objekt konvertiert und gerendert wird, sieht möglicherweise nicht mit direkt gerendertem Text aus:
Text, der in ein Geometry Objekt konvertiert wurde, wird nicht mit ClearType gerendert. Darüber hinaus wird die Baseline des konvertierten nicht auf ein gesamtes Anzeigepixel angedockt.
Kleine Schriftarten, wie sie häufig im Textkörper verwendet werden, verlieren möglicherweise an Lesbarkeit, wirken unscharf und variieren im Aussehen.