Silverlight中静态文本与图像的使用指南
立即解锁
发布时间: 2025-08-26 01:18:37 阅读量: 3 订阅数: 16 

### Silverlight 中静态文本与图像的使用指南
#### 1. 静态文本显示
在 Silverlight 里,若要展示格式化文本块,使用轻量级且灵活的 `TextBlock` 元素是个不错的选择。
##### 1.1 设置文本内容
`TextBlock` 元素提供了 `Text` 属性,可用于接受要显示的文本字符串。例如:
```xml
<TextBlock Text="This is the content."></TextBlock>
```
也可以将文本作为嵌套内容提供:
```xml
<TextBlock>This is the content.</TextBlock>
```
这种方式的主要优点是能添加换行符和制表符,让代码中的大段文本更易读。不过,Silverlight 遵循 XML 的标准规则,会折叠空白字符,一系列的空格、制表符和硬回车会被渲染为单个空格字符。若要在明确位置分割文本行,可使用单独的 `TextBlock` 元素,或在 `TextBlock` 元素内使用 `LineBreak`,示例如下:
```xml
<TextBlock>
This is line 1.<LineBreak/>
This is line 2.
</TextBlock>
```
需要注意的是,使用内联文本时,不能使用 `<` 和 `>` 字符,因为它们在 XML 中有特定含义,需用字符实体 `<`(小于符号)和 `>`(大于符号)替代。
##### 1.2 设置文本颜色
文本默认颜色为黑色,可使用 `Foreground` 属性更改文本颜色。在 XAML 中可使用颜色名称设置,例如:
```xml
<TextBlock x:Name="txt" Text="Hello World" Foreground="Red"></TextBlock>
```
也可在代码中设置:
```csharp
txt.Foreground = new SolidColorBrush(Colors.Red);
```
除了使用颜色名称,还能使用 RGB 值,也可使用部分透明颜色让背景透出。
##### 1.3 其他属性
`TextBlock` 还提供了 `TextAlignment` 属性(用于居中或右对齐文本)、`Padding` 属性(设置文本与 `TextBlock` 外边缘之间的间距),以及一些用于控制字体、内联格式和文本换行的属性。
#### 2. 字体属性
`TextBlock` 类定义了决定文本在控件中外观的字体属性,具体如下表所示:
| 属性名 | 描述 |
| ---- | ---- |
| FontFamily | 要使用的字体名称。Silverlight 作为客户端技术,仅支持九种内置字体(Arial、Arial Black、Comic Sans MS、Courier New、Georgia、Lucida、Times New Roman、Trebuchet MS 和 Verdana)。不过,可通过将自定义字体与项目程序集打包来使用自定义字体。 |
| FontSize | 字体大小,以像素为单位。普通 Windows 应用程序使用点来衡量字体大小,1 点为标准 PC 显示器上 1 英寸的 1/72,而 1 像素为 1 英寸的 1/96。若要将 Silverlight 字体大小转换为更熟悉的点大小,可将像素值乘以 3/4。例如,20 像素的 `FontSize` 相当于传统的 15 点字体大小。 |
| FontStyle | 文本的倾斜方式,由 `FontStyle` 对象表示。可从 `FontStyles` 类的静态属性获取所需的 `FontStyle` 预设,包括正常和斜体。若对不提供斜体变体的字体应用斜体,Silverlight 会简单地倾斜字母,但这只是对真正斜体字体的粗略近似。 |
| FontWeight | 文本的粗细,由 `FontWeight` 对象表示。可从 `FontWeights` 类的静态属性获取所需的 `FontWeight` 预设,常见的有正常和粗体。若对不提供粗体变体的字体使用粗体,Silverlight 会在字母周围绘制更粗的边框来模拟粗体。 |
| FontStretch | 文本的拉伸或压缩量,由 `FontStretch` 对象表示。可从 `FontStretches` 类的静态属性获取所需的 `FontStretch` 预设。例如,`UltraCondensed` 会将字体缩小到正常宽度的 50%,而 `UltraExpanded` 会将其扩展到 200%。字体拉伸是 OpenType 功能,许多字体不支持,Silverlight 内置字体也不支持这些变体,因此该属性仅在嵌入支持的自定义字体时才适用。 |
在选择字体时,必须提供完整的字体家族名称,例如:
```xml
<TextBlock x:Name="txt" FontFamily="Times New Roman" FontSize="18">
Some Text</TextBlock>
```
在代码中设置如下:
```csharp
txt.FontFamily = "Times New Roman";
txt.FontSize = "18";
```
缩短的字符串不足以标识 `FontFamily`,不能用 `Times` 或 `Times New` 替代完整名称 `Times New Roman`。也可使用字体样式的完整名称来获取斜体或粗体,不过使用字体家族名称并设置其他属性(如 `FontStyle` 和 `FontWeight`)来获取所需变体更清晰灵活。
#### 3. 标准字体
Silverlight 支持九种核心字体,这些字体能在任何支持 Silverlight 的浏览器和操作系统上正确渲染。对于 `Lucida` 字体,有两种名称略有不同的变体,`Lucida Sans Unicode` 包含在 Windows 中,而 `Lucida Grande` 是包含在 Mac OS X 中的几乎相同的字体。`FontFamily` 属性支持字体回退,可提供逗号分隔的字体名称列表,Silverlight 会使用第一个支持的字体。默认的 `TextBlock` 字体相当于将 `FontFamily` 属性设置为字符串 “Lucida Sans Unicode, Lucida Grande”。
#### 4. 字体嵌入
若要在应用程序中使用非标准字体,可将其嵌入应用程序集。嵌入过程如下:
1. 将字体文件(通常是扩展名为 `.ttf` 的文件)添加到应用程序,并将其生成操作设置为资源。可在 Visual Studio 的解决方案资源管理器中选择字体文件,在属性页中更改其生成操作。
2. 设置 `FontFamily` 属性时,使用以下格式:`Fon
0
0
复制全文
相关推荐










