
- 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 |