Gewusst wie: Erstellen einer Textdekoration
Ein TextDecoration-Objekt ist eine visuelle Verzierung, die dem Text hinzugefügt werden kann. Es gibt vier Typen von Textdekorationen: Unterstrichen, Baseline, Durchgestrichen und Überstrichen. Im folgenden Beispiel werden die Positionen der Textdekorationen relativ zum Text dargestellt.
Beispiel für Textdekorationstypen
Um Text eine Textdekoration hinzuzufügen, erstellen Sie ein TextDecoration-Objekt, und ändern Sie seine Eigenschaften. Verwenden Sie die Location-Eigenschaft, um anzugeben, wo die Textdekoration angezeigt wird, z. B. Unterstrich. Verwenden Sie die Pen-Eigenschaft, um die Darstellung der Textdekoration anzugeben, z. B. eine Volltonfüllung oder ein Farbverlauf. Wenn Sie keinen Wert für die Pen-Eigenschaft angeben, übernehmen die Dekorationen standardmäßig die Textfarbe. Nachdem Sie ein TextDecoration-Objekt definiert haben, fügen Sie es zur TextDecorations-Auflistung des gewünschten Textobjekts hinzu.
Im folgenden Beispiel wird eine Textdekoration gezeigt, die mit einem Pinsel für lineare Verläufe und einem gestrichelten Stift formatiert wurde.
Beispiel für eine Unterstreichung mithilfe eines Pinsels für lineare Verläufe und eines gestrichelten Stifts
Das Hyperlink-Objekt stellt ein fortlaufendes Inhaltselement auf Inlineebene dar, das Ihnen das Hosten von Links im fortlaufenden Inhalt ermöglicht. Standardmäßig verwendet Hyperlink ein TextDecoration-Objekt, um eine Unterstreichung anzuzeigen. Die Instanziierung von TextDecoration-Objekten kann ressourcenintensiv sein, insbesondere bei vielen Hyperlink-Objekten. Wenn Sie Hyperlink-Elemente häufig einsetzen, sollten Sie einen Unterstrich nur anzeigen, wenn Sie ein Ereignis, z. B. das MouseEnter-Ereignis, auslösen.
Im folgenden Beispiel ist der Unterstrich für den Link "My MSN" dynamisch. Er wird nur angezeigt, wenn das MouseEnter-Ereignis ausgelöst wird.
Mit Textdekorationen definierte Links
Weitere Informationen finden Sie unter Gewusst wie: Verwenden einer Textdekoration mit einem Link.
Beispiel
Im folgenden Codebeispiel wird für eine unterstrichene Textdekoration der Standardschriftartwert verwendet.
' Use the default font values for the strikethrough text decoration.
Private Sub SetDefaultStrikethrough()
' Set the underline decoration directly to the text block.
TextBlock1.TextDecorations = TextDecorations.Strikethrough
End Sub
// Use the default font values for the strikethrough text decoration.
private void SetDefaultStrikethrough()
{
// Set the underline decoration directly to the text block.
TextBlock1.TextDecorations = TextDecorations.Strikethrough;
}
<!-- Use the default font values for the strikethrough text decoration. -->
<TextBlock
TextDecorations="Strikethrough"
FontSize="36" >
The quick red fox
</TextBlock>
Im folgenden Codebeispiel wird eine Textdekoration für Unterstreichung mit einem Volltonfarbenpinsel für den Stift erstellt.
' Use a Red pen for the underline text decoration.
Private Sub SetRedUnderline()
' Create an underline text decoration. Default is underline.
Dim myUnderline As New TextDecoration()
' Create a solid color brush pen for the text decoration.
myUnderline.Pen = New Pen(Brushes.Red, 1)
myUnderline.PenThicknessUnit = TextDecorationUnit.FontRecommended
' Set the underline decoration to a TextDecorationCollection and add it to the text block.
Dim myCollection As New TextDecorationCollection()
myCollection.Add(myUnderline)
TextBlock2.TextDecorations = myCollection
End Sub
// Use a Red pen for the underline text decoration.
private void SetRedUnderline()
{
// Create an underline text decoration. Default is underline.
TextDecoration myUnderline = new TextDecoration();
// Create a solid color brush pen for the text decoration.
myUnderline.Pen = new Pen(Brushes.Red, 1);
myUnderline.PenThicknessUnit = TextDecorationUnit.FontRecommended;
// Set the underline decoration to a TextDecorationCollection and add it to the text block.
TextDecorationCollection myCollection = new TextDecorationCollection();
myCollection.Add(myUnderline);
TextBlock2.TextDecorations = myCollection;
}
<!-- Use a Red pen for the underline text decoration -->
<TextBlock
FontSize="36" >
jumped over
<TextBlock.TextDecorations>
<TextDecorationCollection>
<TextDecoration
PenThicknessUnit="FontRecommended">
<TextDecoration.Pen>
<Pen Brush="Red" Thickness="1" />
</TextDecoration.Pen>
</TextDecoration>
</TextDecorationCollection>
</TextBlock.TextDecorations>
</TextBlock>
Im folgenden Codebeispiel wird eine Textdekoration für Unterstreichungen mithilfe eines Pinsels für lineare Verläufe für den gestrichelten Stift erstellt.
' Use a linear gradient pen for the underline text decoration.
Private Sub SetLinearGradientUnderline()
' Create an underline text decoration. Default is underline.
Dim myUnderline As New TextDecoration()
' Create a linear gradient pen for the text decoration.
Dim myPen As New Pen()
myPen.Brush = New LinearGradientBrush(Colors.Yellow, Colors.Red, New Point(0, 0.5), New Point(1, 0.5))
myPen.Brush.Opacity = 0.5
myPen.Thickness = 1.5
myPen.DashStyle = DashStyles.Dash
myUnderline.Pen = myPen
myUnderline.PenThicknessUnit = TextDecorationUnit.FontRecommended
' Set the underline decoration to a TextDecorationCollection and add it to the text block.
Dim myCollection As New TextDecorationCollection()
myCollection.Add(myUnderline)
TextBlock3.TextDecorations = myCollection
End Sub
// Use a linear gradient pen for the underline text decoration.
private void SetLinearGradientUnderline()
{
// Create an underline text decoration. Default is underline.
TextDecoration myUnderline = new TextDecoration();
// Create a linear gradient pen for the text decoration.
Pen myPen = new Pen();
myPen.Brush = new LinearGradientBrush(Colors.Yellow, Colors.Red, new Point(0, 0.5), new Point(1, 0.5));
myPen.Brush.Opacity = 0.5;
myPen.Thickness = 1.5;
myPen.DashStyle = DashStyles.Dash;
myUnderline.Pen = myPen;
myUnderline.PenThicknessUnit = TextDecorationUnit.FontRecommended;
// Set the underline decoration to a TextDecorationCollection and add it to the text block.
TextDecorationCollection myCollection = new TextDecorationCollection();
myCollection.Add(myUnderline);
TextBlock3.TextDecorations = myCollection;
}
<!-- Use a linear gradient pen for the underline text decoration. -->
<TextBlock FontSize="36">the lazy brown dog.
<TextBlock.TextDecorations>
<TextDecorationCollection>
<TextDecoration
PenThicknessUnit="FontRecommended">
<TextDecoration.Pen>
<Pen Thickness="1.5">
<Pen.Brush>
<LinearGradientBrush Opacity="0.5"
StartPoint="0,0.5" EndPoint="1,0.5">
<LinearGradientBrush.GradientStops>
<GradientStop Color="Yellow" Offset="0" />
<GradientStop Color="Red" Offset="1" />
</LinearGradientBrush.GradientStops>
</LinearGradientBrush>
</Pen.Brush>
<Pen.DashStyle>
<DashStyle Dashes="2"/>
</Pen.DashStyle>
</Pen>
</TextDecoration.Pen>
</TextDecoration>
</TextDecorationCollection>
</TextBlock.TextDecorations>
</TextBlock>
Siehe auch
Aufgaben
Gewusst wie: Verwenden einer Textdekoration mit einem Link