Windows应用程序对文本有丰富的支持。TextBlock控件不仅支持简单字符串的显示,还支持更复杂的文本元素,比如使用不同的样式、权重、内联元素和块元素。RichTextBlock控件扩展了这个功能,允许文本溢出。如果一列不够,可以很容易地将信息流到溢出区域。使用RichTextBox控件,支持RTF(富文本文件)的使用。
1. 使用字体
文本的一个重要方面是它的外观和字体的重要性。通过TextBlock控件,可以使用属性FontWeight、FontStyle、FontStretch、FontSize和FontFamily指定字体:
- FontWeight——FontWeight类指定的预定义值,它提供了如ExtraLight、Light、Medium、Normal、Bold和ExtraBold等值。
- FontStyle——FontStyle类定义的值,它提供了Normal、Italice 和 Oblique。
- FontStretch——使用它指定伸缩字体的度(与正常长宽比相比)。FontStretch定义了预定义的伸展度,范围是从50%(UltraCondensed)到200%(UltraExpanded)。在该范围内的预定义值有ExtraCondensed(62.5%)、Condensed(75%)、SemiCondensed(87.5%)、Normal(100%)、SemiExpanded(112.5%)、Expanded(125%)和ExtraExpanded(150%)。
- FontSize——这是double类型,允许用与设备无关的单位指定字体的大小。
- FontFamily——用于指定首选的字体系列名,例如Arial或Times New Roman。使用此属性,可以指定一个字体系列名称的列表,因此,如果一个字体不可用,则使用列表中的下一个字体。
为了了解不同字体的外观,下面的示例应用程序包括一个ListView。ListView显示该字体列表中的字体名称。选择字体时,会显示更多的字体信息,如粗体字体的权重、字体样式的斜体、字体的展开和压缩,以及一些使用字体的文本:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<ListView x:Name="listFonts" ItemsSource="{x:Bind AllFonts,Mode=OneTime}"
SelectedItem="{x:Bind SelectedFont,Mode=TwoWay}" Margin="12">
<ListView.ItemTemplate>
<DataTemplate x:DataType="x:String">
<TextBlock Text="{x:Bind}" FontFamily="{x:Bind}"/>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
<StackPanel Grid.Column="1" Margin="12" Padding="8">
<TextBlock Text="{x:Bind SelectedFont,Mode=OneWay}" FontFamily="{x:Bind SelectedFont,Mode=OneWay}"/>
<TextBlock Text="Bold" FontFamily="{x:Bind SelectedFont,Mode=OneWay}" FontWeight="Bold"/>
<TextBlock Text="Italic" FontFamily="{x:Bind SelectedFont,Mode=OneWay}" FontStyle="Italic"/>
<TextBlock Text="Expanded" FontFamily="{x:Bind SelectedFont,Mode=OneWay}" FontStretch="Expanded"/>
<TextBlock Text="Condensed" FontFamily="{x:Bind SelectedFont,Mode=OneWay}" FontStretch="Condensed"/>
<TextBlock Text="The quick brown fox jumped over hte lazy dogs" FontFamily="{x:Bind SelectedFont,Mode=OneWay}"/>
<TextBlock Text="" FontFamily="{x:Bind SelectedFont,Mode=OneWay}"/>
<TextBlock Text="⑧তথ" FontFamily="{x:Bind SelectedFont,Mode=OneWay}"/>
</StackPanel>
</Grid>
在代码隐藏文件中,在Windows 10系统中保证可用的字体组合在一个集合中——其中的字体有的适合于标题和UI元素,如Calibri、Consolas和Segoe UI;有的适合于大量的文本,如Cambria和Courier New;有的适合于符号和图标,如Segoe UI Emoji和Segoe MDL2 Assets;以及非拉丁字体。合