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
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.
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
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çã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