共用方式為


Windows Presentation Foundation 中的印刷樣式

更新:2007 年 11 月

本主題介紹 WPF 的主要印刷樣式功能。這些功能包含改善的文字呈現品質和效能、OpenType 印刷樣式支援、增強型國際文字、增強型字型支援和全新的文字應用程式發展介面 (API)。

這個主題包含下列章節。

  • 改善的文字品質和效能
  • 豐富的印刷樣式
  • 增強型國際文字支援
  • 增強型字型支援
  • 全新的文字應用程式發展介面 (API)
  • 資源
  • 相關主題

改善的文字品質和效能

WPF 中的文字是使用 Microsoft ClearType 呈現的,會增強文字的清晰度和可讀性。ClearType 是由 Microsoft 開發的軟體技術,能夠改善現有 LCD (液晶顯示,例如膝上型電腦螢幕、Pocket PC 螢幕和平面監視器) 文字的可讀性。ClearType 使用子像素呈現,會藉由對齊像素小數部分的字元,以更大的真實圖案逼真度來顯示文字。極高解析度會增加文字顯示中微小細節的清晰度,讓長時間閱讀方便得多。WPF 中 ClearType 的另一項改善是 Y 方向消除鋸齒,就是讓文字字元淺曲線的上下端更加平滑。如需 ClearType 功能的詳細資訊,請參閱 ClearType 概觀

使用 ClearType Y 方向消除鋸齒的文字

套用 ClearType Y 方向消除鋸齒功能的文字

只要您的電腦符合所需硬體的最低層級需求,就可以透過硬體加快 WPF 中用於呈現文字的整個流程。無法使用硬體執行的呈現會切換回軟體呈現。硬體加速會影響文字呈現流程的所有階段,包括儲存個別圖像、將圖像組合至圖像執行、套用效果,以及將 ClearType 混合演算法套用至最終顯示輸出。如需硬體加速的詳細資訊,請參閱圖形轉譯層

文字呈現流程圖

文字轉譯管線的圖表

此外,無論是字元或圖像的動畫文字,都會充分運用 WPF 所賦予的圖形硬體功能。得到的結果就會是平滑的文字動畫。

豐富的印刷樣式

OpenType 字型格式是 TrueType® 字型格式的延伸。OpenType 字型格式是由 Microsoft 和 Adobe 共同開發,可以提供豐富的進階印刷樣式功能。Typography 物件會公開 OpenType 字型的許多進階功能,例如文體替代字和花飾字。Windows SDK 提供了一組具備眾多功能的 OpenType 範例字型,例如 Pericles 和 Pescadero 字型。如需詳細資訊,請參閱範例 OpenType 字型套件

Pericles OpenType 字型包含額外的圖像,這些圖像可以提供標準圖像集的文體替代字。下列文字顯示文體替代字圖像。

使用 OpenType 文體替代字圖像的文字

使用 OpenType 文體替代圖像的文字

花飾字一般是與書法相關的精緻裝飾性圖像。下列文字顯示 Pescadero 字型的標準和花飾字圖像。

使用 OpenType 標準和花飾字圖像的文字

使用 OpenType 標準和勾耳圖像的文字

如需 OpenType 功能的詳細資訊,請參閱 OpenType 字型功能

增強型國際文字支援

WPF 具備下列功能,提供了增強型國際文字支援:

  • 使用適應性度量,自動調整所有書寫系統中的行距。

  • 廣泛的國際文字支援。如需詳細資訊,請參閱全球化 Windows Presentation Foundation

  • 語言指引的分行、斷字和對齊。

增強型字型支援

WPF 具備下列功能,提供了增強型字型支援:

  • 所有文字都使用 Unicode。字型行為和選取不再需要字元集或字碼頁。

  • 字型行為與全域設定 (例如系統地區設定) 無關。

  • 不同的 FontWeightFontStretchFontStyle 型別是用於定義 FontFamily。相較於使用斜體和粗體布林組合來定義字型系列的 Win32 程式設計,這提供更大的彈性。

  • 書寫方向 (水平和垂直) 處理與字型名稱無關。

  • 可攜式 XML 檔案中的字型連結和字型後援 (使用複合字型技術)。複合字型允許建構各項多語字型。複合字型也提供了可以避免顯示遺失圖像的機制。如需詳細資訊,請參閱 FontFamily 類別中的備註。

  • 使用一組單一語言字型,從複合字型建立國際字型。在開發多個語言的字型時,這可以節省資源成本。

  • 複合字型會內嵌在文件中,因此可以提供文件可攜性。如需詳細資訊,請參閱 FontFamily 類別中的備註。

全新的文字應用程式發展介面 (API)

WPF 提供了數個文字 API,可供開發人員在應用程式中包含文字時使用。這些 API 分為三類:

  • 配置和使用者介面:圖形使用者介面 (GUI) 的通用文字控制項。

  • 輕量型文字繪製:讓您直接在物件上繪製文字。

  • 進階文字格式:讓您實作自訂文字引擎。

配置和使用者介面

以最高層級的功能角度來說,文字 API 會提供通用使用者介面 (UI) 控制項,例如 LabelTextBlockTextBox。這些控制項會在應用程式中提供基本的 UI 項目,並提供簡單的方式來呈現文字以及與文字互動。RichTextBoxPasswordBox 之類的控制項會啟用更進階或特定的文字處理。而 TextRangeTextSelectionTextPointer 之類的類別則會啟用有用的文字管理。這些 UI 控制項提供了屬性,例如 FontFamilyFontSizeFontStyle,可讓您控制用於呈現文字的字型。

使用點陣圖效果、轉換和文字效果

WPF 可讓您使用功能 (例如點陣圖效果、轉換和文字效果) 來建立具有有趣外觀的文字。下列範例顯示套用至文字的一般下拉式陰影效果類型。

具有下拉式陰影的文字

Softness = 0.25 的文字陰影

下列範例顯示套用至文字的下拉式陰影效果和雜訊。

具有下拉式陰影和雜訊的文字

具有雜點的文字陰影

下列範例顯示套用至文字的外部光暈效果。

具有外部光暈效果的文字

使用 OuterGlowBitmapEffect 的文字陰影

下列範例顯示套用至文字的模糊效果。

具有模糊效果的文字

使用 BlurBitmapEffect 的文字陰影

下列範例顯示第二行文字沿著 X 軸調整 150%,第三行文字沿著 Y 軸調整 150%。

使用 ScaleTransform 的文字

使用 ScaleTransform 縮放的文字

下列範例顯示文字沿著 X 軸傾斜。

使用 SkewTransform 的文字

使用 SkewTransform 傾斜的文字

TextEffect 物件是可以允許您將文字視為文字字串中之一或多組字元的 Helper 物件。下列取自 TextEffect 範例 的範例會顯示個別旋轉的字元。每個字元是以 1 秒間隔獨立旋轉。

旋轉文字效果動畫的範例

旋轉文字的文字效果螢幕擷取畫面

使用流程文件

除了通用 UI 控制項之外,WPF 還提供用於進行文字展示的配置控制項,即 FlowDocument 項目。當 FlowDocument 項目與 DocumentViewer 項目搭配使用時,可以為具有各種配置需求的大量文字提供控制。配置控制項會透過 Typography 物件和其他 UI 控制項的字型相關屬性,提供進階印刷樣式存取。

下列範例顯示 FlowDocumentReader 中裝載的文字內容,會提供搜尋、巡覽、分頁和內容縮放比例支援。

FlowDocumentReader 中裝載的文字

使用 OpenType 字型範例螢幕擷取畫面

如需詳細資訊,請參閱 Windows Presentation Foundation 中的文件

輕量型文字繪製

您可以使用 DrawingContext 物件的 DrawText 方法,直接在 WPF 物件上繪製文字。若要使用這個方法,您必須建立 FormattedText 物件。這個物件可讓您繪製多行文字,而文字中的每個字元都可以個別格式化。FormattedText 物件的功能包含 Win32 API 中 DrawText 旗標的許多功能。此外,FormattedText 物件還包含其他功能,例如省略符號支援,即文字超出範圍時顯示省略符號。下列範例顯示套用多種格式的文字,包括第二和第三個字上的線形漸層。

使用 FormattedText 物件的顯示文字

使用 FormattedText 物件顯示的文字

您可以將格式化文字轉換為 Geometry 物件,以便建立具有有趣外觀的其他文字類型。例如,您可以根據文字字串的外框來建立 Geometry 物件。

使用線形漸層筆刷的文字外框

以線性漸層筆刷繪製外框的文字

下列範例說明藉由修改轉換文字的筆劃、填滿和反白顯示,建立有趣視覺效果的多個方法。

將筆劃和填滿設定為不同色彩的範例

使用不同填色和筆觸色彩的文字

在筆劃上套用影像筆刷的範例

影像筆刷套用至筆觸的文字

在筆劃和反白顯示上套用影像筆刷的範例

影像筆刷套用至筆觸的文字

如需 FormattedText 物件的詳細資訊,請參閱繪製格式化的文字

進階文字格式化

以文字 API 的最進階層級角度來說,WPF 會藉由使用 TextFormatter 物件和 System.Windows.Media.TextFormatting 命名空間中其他的型別來為您提供建立自訂文字配置的能力。TextFormatter 和相關類別可讓您實作自訂文字配置,以支援您自己的國際文字字元格式、段落樣式、分行規則和其他配置功能的定義。您幾乎不需要覆寫 WPF 文字配置支援的預設實作。但是當您建立文字編輯控制項或應用程式時,您可能會需要預設 WPF 實作之外的不同實作。

與傳統文字 API 不同的是,TextFormatter 會透過一組回呼方法,與文字配置用戶端互動。它會要求要用戶端在 TextSource 類別實作中提供這些方法。下列圖表說明用戶端應用程式和 TextFormatter 之間的文字配置互動。

應用程式和 TextFormatter 之間的互動

文字配置用戶端和 TextFormatter 的圖表

如需建立自訂文字配置的詳細資訊,請參閱進階文字格式化

資源

了解 OpenType 功能的實用技巧,就是使用 XamlPad 來建立試驗使用不同印刷樣式屬性的標記。如需詳細資訊,請參閱 XAMLPad

使用 XamlPad 測試 OpenType 字型

顯示 OpenType 功能的 XamlPad

請參閱

概念

ClearType 概觀

OpenType 字型功能

繪製格式化的文字

進階文字格式化

最佳化效能:文字

XAMLPad

參考

FormattedText

TextFormatter

其他資源

Microsoft 印刷樣式