WPF中的文字修饰:上、中、下划线与基线2013-11-26 cnblogs 幕三少我们知道,文字的修饰包括:空心字、立体字、划线字、阴影字、加粗、倾斜等。这里只说划线字的修饰 方式,按划线的位置,我们可将之分为:上划线、中划线、基线与下划线。如图:

从上至下,分别 为上划线(Overline),中划线(StrikeThrough),基线(Baseline)和下划线(Underline)。如何实现?(1)XAML代码:
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" ><TextBlock TextDecorations="Strikethrough" FontSize="72" FontFamily="Arial">A</TextBlock></Page>
这里 TextDecorations 属性可以设置为:OverLine, Strikethrough, Baseline, Underline 或None,如果没有设置 TextDecorations 属性,则默认为 None,即不带划线修饰。(2)使用C#代码:private void SetDefaultStrikethrough(){ textBlock1.TextDecorations = TextDecorations.Strikethrough;}(为了简洁,这里只列出相关的关 键代码,其他代码未用 C#列出。textBlock1 为 TextBlock 的名称,在 XAML 中使用 x:Name="textBlock1"形式标记)如果要更复杂点的效果,比如需要设置划线的颜色、线粗 等,如下图:

如何制作类似效果呢?方法是: 设置 TextBlock 的 TextDecorations 属性,再对 TextDecoration 的 Pen 属性进行设置。如下 XAML 代码:
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" ><Canvas><TextBlock FontSize="84" FontFamily="Arial Black" Margin="0,0"><TextBlock.TextDecorations><TextDecoration PenOffset="10" PenOffsetUnit="Pixel" PenThicknessUnit="Pixel"> <TextDecoration.Pen><Pen Thickness="5"><Pen.Brush><LinearGradientBrush Opacity="0.8" 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="1,2,3"/></Pen.DashStyle></Pen></TextDecoration.Pen></TextDecoration></TextBlock.TextDecorations>GOOD</TextBlock></Canvas></Page>