Freigeben über


Gewusst wie: Erstellen einer Textdekoration

Aktualisiert: November 2007

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

Diagramm der Textergänzungsstellen

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

Textergänzung mit linearer Farbverlaufsunterstreichung

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 einen Unterstrich 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

Links mit TextDecorations

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

Tipp

Ein vollständiges Beispiel für die Verwendung von Textdekorationen finden Sie unter Beispiel zu TextDecoration.

Siehe auch

Aufgaben

Gewusst wie: Verwenden einer Textdekoration mit einem Link

Referenz

TextDecoration

Hyperlink