Partilhar via


Como: Criar um enfeite de texto

Um objeto TextDecoration é um ornamento visual que você pode adicionar ao texto. Há quatro tipos de decoração de texto: sublinhado, linha de base, tachado e linha sobreposta. O seguinte exemplo mostra a localização de textos decorados relativos ao texto.

Exemplo de tipos de decoração de texto

Diagrama de locais de decoração de texto

Para adicionar uma decoração de texto a um texto, crie um objeto TextDecoration e modifique suas propriedades. se a propriedade Location para especificar onde a decoração de texto aparece, como sublinhado. Use a propriedade Pen para especificar a aparência da decoração do texto, como um preenchimento sólido ou um gradiente de cor. Se você não especificar um valor para a propriedade Pen, as decorações padronizam para a mesma cor do texto. Uma vez que você definiu um objeto TextDecoration, adicione-o à coleção TextDecorations do objeto texto desejado.

O seguinte exemplo mostra uma decoração de texto que foi estilizada com um desenho de gradiente linear e uma caneta tracejada.

Exemplo de um estilo sublinhado com um desenho de gradiente linear e caneta tracejada.

Decoração de texto com sublinhado em gradiente linear

O objeto Hyperlink é um elemento de conteúdo de nível interno que permite você ter hiperlinks dentro do conteúdo de fluxo. Por padrão, Hyperlink usa um TextDecoration objeto para exibir um sublinhado. TextDecoration os objetos podem ser desempenho intensivo, para criar uma instância, especialmente se você tiver muitos Hyperlink objetos. Se você fizer uso extensivo de elementos Hyperlink, você pode querer considerar mostrar um sublinhado somente quando ativando um evento, tal como o evento MouseEnter.

No exemplo seguinte, o sublinhado para o link "My MSN" é dinâmico, só aparece quando o evento MouseEnter é ativado.

Hiperlink definido com TextDecorations

Hiperlinks exibindo TextDecorations

Para obter mais informações, consulte Como: Use a Text Decoration with a Hyperlink.

Exemplo

No seguinte exemplo de código, uma decoração de texto sublinhado usa o valor de fonte padrão.

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

No seguinte exemplo de código, uma decoração de texto sublinhado é criado com um desenho de cor sólida para a caneta.

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

No seguinte exemplo de código, uma decoração de texto sublinhado é criado com um desenho de gradiente linear para a caneta tracejada.

// 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>
ObservaçãoObservação:

Para obter um exemplo do uso de decoração de texto completo, consulte o Exemplo de TextDecoration.

Consulte também

Tarefas

Como: Use a Text Decoration with a Hyperlink

Referência

TextDecoration

Hyperlink