WPF 中的印刷樣式
本主題介紹 WPF 的主要印刷樣式功能。 這些功能包括改善文字轉譯的品質和效能、OpenType 印刷樣式支援、增強的國際文字、增強字型支援,以及新的文字應用程式開發介面(API)。
提升文字的品質與效能
WPF 中的文字會使用 Microsoft ClearType 轉譯,以增強文字的清晰性和可讀性。 ClearType 是由 Microsoft 開發的軟體技術,可改善現有 LCD 上文字的可讀性,例如膝上型電腦螢幕、口袋電腦螢幕和平板監視器。 ClearType 使用子圖元轉譯,讓文字在圖元的小數部分對齊字元,以更逼真度顯示其真實圖形。 額外的解析度可提高文字顯示細節的銳度,即使經過長時間也容易閱讀。 WPF 中 ClearType 的另一個改進是 Y 方向的消除鋸齒,可平滑文字字元中淺曲線的頂端和底部。 如需 ClearType 功能的詳細資訊,請參閱 ClearType 概觀 。
以 ClearType Y 方向消除鋸齒功能顯示的文字
如果您的電腦符合所需的最低硬體層級,整個文字轉譯管線可以在 WPF 中加速硬體。 無法使用硬體執行的轉譯會回復為軟體轉譯。 硬體加速會影響文字轉譯管線的所有階段,從儲存個別圖像、將圖像組合成圖像執行、套用效果,到將 ClearType 混合演算法套用至最終顯示的輸出。 如需硬體加速的詳細資訊,請參閱圖形轉譯層。
此外,動畫文字,無論是字元或圖像,都會充分利用 WPF 所啟用的圖形硬體功能。 這樣可產生平滑的文字動畫。
豐富的印刷樣式
OpenType 字型格式是 TrueType® 字型格式的延伸。 OpenType 字型格式是由 Microsoft 和 Adobe 共同開發,並提供豐富的進階印刷樣式功能。 物件 Typography 會公開 OpenType 字型的許多進階功能,例如文體替代字型和斜體。 Windows SDK 提供一組範例 OpenType 字型,這些字型的設計具有豐富的功能,例如 Pericles 和 Pescadero 字型。 如需詳細資訊,請參閱 範例 OpenType 字型套件。
Pericles OpenType 字型包含額外的字元,可提供標準字元集的文體替代字型。 下列文字顯示文體替代字符。
花飾字是裝飾性字符,使用精心設計且通常與書寫體相關聯的裝飾。 下列文字顯示 Pescadero 字型的標準和花飾字字符。
如需 OpenType 功能的詳細資訊,請參閱 OpenType 字型功能 。
已增強的國際文字支援
WPF 提供下列功能來提供增強的國際文字支援:
在所有書寫系統中,使用自動調整度量功能來自動調整行間距。
對於國際文字的廣泛支援。 如需詳細資訊,請參閱 WPF 的全球化。
語言導向的分行、斷字及對齊。
已增強的字型支援
WPF 提供下列功能來提供增強的字型支援:
適用於所有文字的 Unicode。 字型行為和選取不再需要字元集或字碼頁。
字型行為與全域設定 (例如系統地區設定) 無關。
分隔 FontWeight 、 FontStretch 、 和 FontStyle 型別,以定義 FontFamily 。 這提供比 Win32 程式設計更大的彈性,其中斜體和粗體布林值組合用來定義字型系列。
書寫方向 (水平和垂直) 會與字型名稱分開處理。
使用複合字型技術,在可攜式 XML 檔案中連結字型和字型後援。 複合字型,能夠建構全系列的多語系字型。 複合字型也提供一種機制來避免顯示遺漏的字符。 如需詳細資訊,請參閱 類別中的 FontFamily 備註。
從複合字型,使用單一語言字型群組建置的國際字型。 這可在開發多國語言的字型時節省資源成本。
內嵌於文件中的複合字型,藉此提供文件的可攜性。 如需詳細資訊,請參閱 類別中的 FontFamily 備註。
新的文字應用程式開發介面 (API)
WPF 提供數個文字 API,供開發人員在應用程式中包含文字時使用。 這些 API 分成三個類別:
版面配置和使用者介面。 圖形化使用者介面 (GUI) 的通用文字控制項。
輕量型文字繪製。 可讓您直接對物件繪製文字。
進階文字格式化。 可讓您實作自訂的文字引擎。
版面配置和使用者介面
在最高層級的功能上,文字 API 會提供常見的 UI 控制項,例如 Label 、 TextBlock 和 TextBox 。 這些控制項提供應用程式內的基本 UI 元素,並提供簡單的方式來呈現和與文字互動。 和 PasswordBox 之類的 RichTextBox 控制項可啟用更進階或特製化的文字處理。 和 類別,例如 TextRange 、 TextSelection 和 ,可 TextPointer 啟用有用的文字操作。 這些 UI 控制項提供的屬性,例如 FontFamily 、 FontSize 和 FontStyle ,可讓您控制用來轉譯文字的字型。
使用點陣圖效果、轉換和文字效果
WPF 可讓您使用點陣圖效果、轉換和文字效果等功能,以視覺化方式建立文字的有趣用法。 下列範例示範套用至文字之延伸陰影效果的典型類型。
下列範例示範套用至文字的延伸陰影效果與雜點。
下列範例示範套用至文字的外光暈效果。
下列範例示範套用至文字的模糊效果。
下列範例示範沿著 X 軸縮放 150% 的第二行文字,以及沿著 Y 軸縮放 150% 的第三行文字。
下列範例顯示沿著 X 軸扭曲的文字。
物件 TextEffect 是協助程式物件,可讓您將文字視為文字字串中的一或多個字元群組。 下列範例示範旋轉個別字元。 每一個字元會以 1 秒的間隔獨立旋轉。
使用非固定格式文件
除了一般 UI 控制項之外,WPF 還提供文字簡報的版面配置控制項,也就是 FlowDocument 元素。 元素 FlowDocument 與 DocumentViewer 元素搭配使用,可為具有不同版面配置需求的大量文字提供控制項。 版面配置控制項可透過 Typography 其他 UI 控制項的物件和字型相關屬性,存取進階印刷樣式。
下列範例顯示裝載在 中的 FlowDocumentReader 文字內容,其提供搜尋、流覽、分頁和內容調整支援。
如需詳細資訊,請參閱 WPF 中的文件。
輕量型文字繪製
您可以使用 物件的 方法 DrawingContext ,將文字直接繪製至 WPF 物件 DrawText 。 若要使用此方法,您可以建立 FormattedText 物件。 這個物件可讓您繪製多行文字,且可個別格式化文字中的每個字元。 物件的功能 FormattedText 包含 Windows API 中 DrawText 旗標的大部分功能。 此外, FormattedText 物件還包含省略號支援等功能,其中會在文字超過其界限時顯示省略號。 下列範例示範的文字具有數種已套用的格式,包括第二個和第三個字的線性漸層。
您可以將格式化的文字轉換成 Geometry 物件,讓您建立其他類型的視覺有趣文字。 例如,您可以根據文字字串的大綱建立 Geometry 物件。
下列範例示範數種方式,可透過修改筆劃、填滿和反白顯示轉換的文字,來建立有趣的視覺效果。
如需物件的詳細資訊 FormattedText ,請參閱 繪製格式化文字 。
進階文字格式化
在文字 API 的最進階層級,WPF 可讓您使用 TextFormatter 命名空間中的物件和其他類型來建立自訂文字版面配置 System.Windows.Media.TextFormatting 。 TextFormatter和相關聯的類別可讓您實作自訂文字版面配置,以支援您自己定義字元格式、段落樣式、斷行規則,以及國際文字的其他版面配置功能。 在極少數的情況下,您會想要覆寫 WPF 文字配置支援的預設實作。 不過,如果您要建立文字編輯控制項或應用程式,您可能需要與預設 WPF 實作不同的實作。
不同于傳統的文字 API,會 TextFormatter 透過一組回呼方法與文字版面配置用戶端互動。 它要求用戶端在 類別的實作 TextSource 中提供這些方法。 下圖說明用戶端應用程式與 TextFormatter 之間的文字配置互動。
如需如何建立自訂文字版面配置的詳細資訊,請參閱進階文字格式化。
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應