- Silverlight 教程
- Silverlight - 首页
- Silverlight - 概述
- Silverlight - 环境设置
- Silverlight - 入门
- Silverlight - XAML 概述
- Silverlight - 项目类型
- Silverlight - 固定布局
- Silverlight - 动态布局
- 受约束与不受约束
- Silverlight - CSS
- Silverlight - 控件
- Silverlight - 按钮
- Silverlight - 内容模型
- Silverlight - ListBox
- Silverlight - 模板
- Silverlight - 可视状态
- Silverlight - 数据绑定
- Silverlight - 浏览器集成
- Silverlight - 浏览器外
- Silverlight - 应用程序和资源
- Silverlight - 文件访问
- Silverlight - 视图模型
- Silverlight - 输入处理
- Silverlight - 隔离存储
- Silverlight - 文本
- Silverlight - 动画
- Silverlight - 视频和音频
- Silverlight - 打印
- Silverlight 有用资源
- Silverlight - 快速指南
- Silverlight - 有用资源
- Silverlight - 讨论
Silverlight - 文本
在本章中,我们将了解 Silverlight 提供哪些功能来显示文本。文本块用于所有文本渲染和 Silverlight。其他重要功能包括:
- 它可以用于简单的纯文本,也可以应用多种格式样式。
- Silverlight 支持一组标准的内置字体。
- 当您的应用程序视觉样式需要一些不常见的东西时,您还可以下载自定义字体。
TextBlock
要显示文本,我们使用 Silverlight 文本块元素,它是一个轻量级控件,用于显示少量只读文本。事实上,我们已经见过很多次了,因为它基本用法不需要太多解释。您只需设置 text 属性,它就会为您显示该文本。
<TextBlock Text = "Print Testing" HorizontalAlignment Center" FontFamily = "Georgia"/>
TextBlock 类的层次继承如下所示:
以下是 TextBlock 类常用的 属性。
序号 | 属性及描述 |
---|---|
1 | ContentEnd 获取 TextBlock 中文本内容末尾的 TextPointer 对象。 |
2 | ContentStart 获取 TextBlock 中文本内容开头的 TextPointer 对象。 |
3 | IsTextSelectionEnabled 获取或设置一个值,该值指示是否在 TextBlock 中启用文本选择,可以通过用户操作或调用与选择相关的 API 来实现。 |
4 | IsTextSelectionEnabledProperty 标识 IsTextSelectionEnabled 依赖项属性。 |
5 | LineHeight 获取或设置内容每行的高度。 |
6 | MaxLines 获取或设置 TextBlock 中显示的最大文本行数。 |
7 | SelectedText 获取选中文本的文本范围。 |
8 | SelectionEnd 获取 TextBlock 中选中文本的结束位置。 |
9 | SelectionHighlightColor 获取或设置用于突出显示选中文本的画刷。 |
10 | SelectionStart 获取 TextBlock 中选中文本的起始位置。 |
11 | Text 获取或设置 TextBlock 的文本内容。 |
12 | TextAlignment 获取或设置一个值,该值指示文本内容的水平对齐方式。 |
13 | TextTrimming 获取或设置当内容超出内容区域时要采用的文本修剪行为。 |
14 | TextWrapping 获取或设置 TextBlock 如何换行文本。 |
以下是 TextBlock 类常用的 事件。
序号 | 事件及描述 |
---|---|
1 | ContextMenuOpening 当系统处理显示上下文菜单的交互时发生。 |
2 | SelectionChanged 当文本选择发生更改时发生。 |
以下是 TextBlock 类常用的 方法。
序号 | 方法及描述 |
---|---|
1 | Focus 将焦点设置到 TextBlock 上,就像它是一个常规的可聚焦控件一样。 |
2 | Select 选择 TextBlock 中的文本范围。 |
3 | SelectAll 选择 TextBlock 中的全部内容。 |
Run
有时您希望对格式进行细粒度的控制,并为整个文本块设置一种样式。有时对单个单词甚至字母进行格式设置很有用,如果您希望这样做,则不要使用 Text 属性,而是将文本作为内容放在 TextBlock 中。如果您使用代码,则对应于向 TextBlock 内联属性添加项目。
使用这种方法,您可以添加一系列 run 元素。每个 Run 都支持相同的字体系列、字体粗细、前景色等属性来控制文本样式。尽管 Run 是一个单独的元素,但这不会破坏文本的流动。
让我们看一个简单的示例,它包含 TextBlock 内的多 Run 元素。以下是 XAML 代码。
<UserControl x:Class = "SilverlightRunDemo.MainPage" xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d = "http://schemas.microsoft.com/expression/blend/2008" xmlns:mc = "http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable = "d" d:DesignHeight = "300" d:DesignWidth = "400"> <Grid x:Name = "LayoutRoot" Background = "White"> <TextBlock Width = "192" TextWrapping = "Wrap" FontFamily = "Verdana"> <Run Text = "Hello, " /> <Run FontWeight = "Bold" Text = "world!" /> <Run Text = "You" /> <Run FontStyle = "Italic" Text = " are " /> <Run Text = "learning" FontSize = "40" FontFamily = "01d English Text MT" /> <Run Text = " the " /> <Run Text = "basics of " Foreground = "Blue" /> <Run Text = " Silverlight." FontSize = "30" /> </TextBlock> </Grid> </UserControl>
编译并执行上述代码后,您将看到以下输出。
如您所见,此文本块通过使用 Run 元素以不同的格式样式进行排列。
顺便说一句,您不需要将每一小段文本都包装在 run 中。您可以将文本块的大部分内容保留为纯文本,只需将 run 应用于需要不同格式的部分,如下所示。
<TextBlock> Hello, <Run FontWeight = "Bold" Text =" world!"/> </TextBlock>
LineBreak
Silverlight 通常会忽略 XAML 中的换行符。它假设大多数空格是为了使它们更容易阅读,因为您实际上希望该空格出现。
让我们看一下此 XAML 代码,其中包含三行单独的文本。
<TextBlock> This is not the end. It is not even the beginning of the end. But it is, perhaps, the end of the beginning </TextBlock>
编译并执行上述代码后,您将看到以下输出。
如您所见,它忽略了换行符并一起执行了所有文本。
如果您启用了 文本换行,它将在需要换行以使文本适合的地方插入换行符,但它会忽略示例中的换行符。
如果您只想添加显式的换行符,则需要在文本块内添加换行符标签。其后的文本将从新行开始。
让我们再次看一下同一个示例,方法是添加 LineBreak 标签。
<TextBlock FontSize = "16"> This is not the end. <LineBreak/> It is not even the beginning of the end. <LineBreak/> But it is, perhaps, the end of the beginning </TextBlock>
执行上述代码后,您将看到它现在看起来与 XAML 中指定的相同。
内置字体
Silverlight 有一组固定的内置字体系列。由于历史原因,字体实际上具有不同的系列名称。默认系列在 Mac OS 和 Windows 上在技术上有所不同,例如在 Mac OS 上它是 Lucida Grande,而在 Windows 上是几乎相同但名为 Lucida Sans Unicode。
以下是一些最常用的字体。
字体 |
---|
Arial |
Arial Black |
Comic Sans MS |
Courier New |
Georgia |
Lucida Grande(Mac)或 Lucida Sans Unicode(Windows) |
Times New Roman |
Trebuchet MS |
Verdana |