共用方式為


文字控制項

文字控制項包含文字輸入方塊、密碼方塊、自動建議方塊和文字區塊。 XAML 架構提供數個用於轉譯、輸入和編輯文字的控制項,以及一組用於格式化文字的屬性。

重要 APITextBlock 類別RichTextBlock 類別TextBox 類別RichEditBox 類別AutoSuggestBox 類別PasswordBox 類別

這是正確的控制嗎?

您使用的文字控制項取決於您的案例。 使用此資訊來挑選要在應用程式中使用的正確文字控制項。

轉譯唯讀文字

使用 TextBlock 在您的應用程式中顯示大部分唯讀文字。 您可以使用它來顯示單行或多行文字、內嵌超連結,以及採用粗體、斜體或底線格式的文字。

TextBlock 通常比 RichTextBlock 更容易使用,並提供更好的文字轉譯效能,因此大部分應用程式 UI 文字都偏好它。 您可以取得 Text 屬性的值,輕鬆地存取和使用應用程式中 TextBlock 中的文字。

它也提供許多相同的格式設定選項,讓您自訂文字的轉譯方式。 儘管您可以在文字中放置分行符號,但 TextBlock 是針對顯示單一段落而設計,不支援文字縮排。

當您需要支援多個段落、多欄文字或其他複雜文字版面配置,或影像等內嵌 UI 元素時,請使用 RichTextBlock 。 RichTextBlock 提供了多種高級文本佈局功能。

RichTextBlock 的內容屬性是 Blocks 屬性,可透過 Paragraph 元素支援段落式的文字。 它沒有 Text 屬性可供您在應用程式中輕鬆存取控制項的文字內容。

文字輸入

使用者可使用 TextBox 控制項來輸入和編輯未格式化的文字 (例如在表單中)。 您可以使用 Text 屬性來取得 TextBox 中的文字,並在其中設定文字。

您可將 TextBox 設為唯讀,但此應為暫時性的條件狀態。 如果文字永遠無法編輯,請考慮改用 TextBlock。

使用 PasswordBox 控制項,以收集密碼或其他私人資料,例如身分證字號。 密碼框是一個文字輸入框,為了隱私起見,隱藏了其中輸入的字元。 密碼輸入框看起來就像文字輸入框,只不過它會將已輸入的文字顯示為圓點符號。 項目符號字符可以自定義。

使用 AutoSuggestBox 控制項,向使用者顯示建議清單,以便在使用者輸入時選擇。 自動建議方塊是觸發基本搜尋建議清單的文字輸入方塊。 建議的字詞可以從熱門搜尋字詞和使用者輸入的歷史字詞的組合中提取。

您也應該使用 AutoSuggestBox 控制項來實作搜尋方塊。

使用 RichEditBox 來顯示和編輯文字檔案。 您不會使用 RichEditBox 來將使用者輸入輸入到您的應用程式中,就像使用其他標準文字輸入方塊一樣。 反之,您會使用它來處理與應用程式分開的文字檔案。 您通常會將輸入至 RichEditBox 的文字儲存至 .rtf 檔案。

文字輸入是最佳選擇嗎?

您可以透過多種方式在應用程式中取得使用者輸入。 這些問題將有助於回答其中一個標準文字輸入方塊或其他控制項是否最適合取得使用者輸入。

  • 有效率地列舉所有有效值是否可行? 如果是,請考慮使用其中一個選取控制項,例如 核取方塊下拉式清單、清單方塊、 選項按鈕滑桿切換開關日期選擇器或時間選擇器。
  • 是否有相當小的有效值集? 如果是這樣,請考慮下 拉式清單 或清單方塊,特別是當值長度超過幾個字元時。
  • 有效數據是否完全不受約束? 或者有效資料是否僅受格式(限制長度或字元類型)的限制? 如果是,請使用文字輸入控制項。 您可以限制可輸入的字元數,也可以驗證應用程式程式碼中的格式。
  • 值是否代表具有特殊通用控制項的資料類型? 如果是,請使用適當的控制項,而不是文字輸入控制項。 例如,使用 DatePicker 而不是文字輸入控制項來接受日期項目。
  • 如果資料嚴格為數值:
    • 輸入的值是否接近和/或相對於同一頁面上的另一個數量? 如果是這樣,請使用 滑桿
    • 使用者是否會從有關設定變更效果的即時回饋中受益? 如果是這樣,請使用 滑桿,可能帶有隨附的控件。
    • 輸入的值是否可能在觀察結果後進行調整,例如音量或螢幕亮度? 如果是這樣,請使用 滑桿

範例

WinUI 2 圖庫
WinUI 畫廊

如果您已安裝 WinUI 2 資源庫 應用程式,請按一下這裡以 開啟應用程式,並查看文字控制項的運作方式

文字方塊

文字方塊

自動建議框

展開的自動建議控件範例

密碼框

密碼方塊焦點狀態輸入文字

建立文字控制項

請參閱這些文章,以取得每個文字控制項的特定資訊和範例。

字體和樣式指南

有關字體指南,請參閱以下文章:

手寫筆輸入

適用於: TextBox、RichEditBox、AutoSuggestBox(僅限 UWP)

從 Windows 10 版本 1803 開始,XAML 文字輸入方塊具有使用 Windows Ink 的手寫筆輸入的內嵌支援。 當使用者使用 Windows 手寫筆點選文字輸入方塊時,文字方塊會轉換,讓使用者直接使用手寫筆,而不是開啟個別的輸入面板。

如需詳細資訊,請參閱 使用手寫檢視輸入文字

選擇適合文字控制的鍵盤

適用於: 文字方塊、密碼方塊 RichEditBox

若要協助使用者使用觸控式鍵盤或軟體輸入面板 (SIP) 輸入數據,您可以設定文字控制件的輸入範圍,以符合使用者預期輸入的數據種類。

提示 此資訊僅適用於 SIP。 它不適用於硬體鍵盤或在 Windows 簡易存取選項中可用的螢幕鍵盤。

當您的應用程式在具備觸控式螢幕的裝置上執行時,可以使用觸控式鍵盤輸入文字。 當使用者點選可編輯的輸入欄位 (例如 TextBox 或 RichEditBox) 時,就會叫用觸控式鍵盤。 您可以設定文字控制項的輸入範圍,使其符合您預期使用者輸入的資料類型,讓使用者在您的應用程式中輸入資料時更加快速方便。 輸入範圍會提供控制項所預期之文字輸入類型的提示給系統,讓系統可以為該輸入類型提供專用的觸控式鍵盤配置。

例如,如果文字方塊只用來輸入 4 位數 PIN,請將 InputScope 屬性設定為 Number。 這會告訴系統顯示數字鍵盤配置,讓使用者更容易輸入 PIN。

這很重要
輸入範圍不會執行任何輸入驗證,也不會防止使用者透過硬體鍵盤或其他輸入設備提供任何輸入。 您仍須負責視需要驗證程式碼中的輸入。

如需詳細資訊,請參閱 使用輸入範圍變更觸控式鍵盤

彩色字體

適用於: TextBlock、RichTextBlock、TextBox、RichEditBox

Windows 能夠讓字型為每個字符包含多個彩色圖層。 例如,Segoe UI 表情符號字型會定義表情符號和其他表情符號字元的色彩版本。

標準和 RTF 控制項支援顯示色彩字型。 根據預設, IsColorFontEnabled 屬性為 true ,且具有這些額外圖層的字型會以色彩轉譯。 系統上的預設色彩字型是 Segoe UI 表情符號,控制項會回復至此字型,以色彩顯示字元。

<TextBlock FontSize="30">Hello ☺⛄☂♨⛅</TextBlock>

轉譯的文字如下所示:

帶有彩色字體的文本塊

如需詳細資訊,請參閱 IsColorFontEnabled 屬性。

行和段落分隔符號的指導方針

適用於: TextBlock、RichTextBlock、多行 TextBox、RichEditBox

使用行分隔字元 (0x2028) 和段落分隔字元 (0x2029) 來分割純文字。 在每個行分隔符號之後開始一行新行。 每個段落分隔符號之後都會開始一個新段落。

不需要用這些字元開始檔案中的第一行或第一段,也不需要用這些字元結束最後一行或段落;這樣做表示該位置有空行或段落。

您的應用程式可以使用行分隔符號來指出無條件的行尾。 不過,行分隔符號不對應於個別的回車和換行字元,或這些字元的組合。 行分隔符號必須與回車符和換行字元分開處理。

您的應用程式可以在文字段落之間插入段落分隔符號。 使用此分隔符可以創建純文本文件,這些文件可以在不同的操作系統上以不同的行寬格式化。 目標系統可以忽略任何行分隔符號,並僅在段落分隔符號處分隔段落。

拼字檢查的指導方針

適用於: 文字方塊、RichEditBox

在文字輸入和編輯期間,拼字檢查會以紅色波浪線醒目提示單字,以通知使用者單字拼錯,並提供使用者更正拼字錯誤的方法。

以下是內建拼字檢查器的範例:

內建拼字檢查器

搭配文字輸入控制項使用拼字檢查,以達到下列兩個目的:

  • 自動更正拼字錯誤

    拼字檢查引擎在對更正有信心時,會自動更正拼錯的單字。 例如,引擎會自動將“the”更改為“the”。

  • 若要顯示替代拼字

    當拼字檢查引擎對更正沒有信心時,它會在拼錯的單字下方新增一條紅線,並在您點選或以滑鼠右鍵按一下該單字時,在內容功能表中顯示替代單字。

  • 使用拼字檢查來協助使用者在文字輸入控制項中輸入單字或句子。 拼字檢查適用於觸控、滑鼠和鍵盤輸入。

  • 當單詞不太可能出現在字典中或用戶不重視拼字檢查時,請勿使用拼字檢查。 例如,如果文字方塊要擷取電話號碼或名稱,請勿開啟它。

  • 請勿僅僅因為目前的拼字檢查引擎不支援您的應用程式語言而停用拼字檢查。 當拼寫檢查器不支援某種語言時,它不會執行任何操作,因此保持該選項開啟並沒有什麼壞處。 此外,部分使用者可能會使用輸入法編輯器 (IME) 在您的應用程式中輸入另一種語言,而且可能支援該語言。 例如,建置日文應用程式時,即使拼字檢查引擎目前可能無法辨識該語言,也不要關閉拼字檢查。 用戶可以切換到英文 IME 並在應用程序中輸入英語;如果啟用拼字檢查,則英文將進行拼字檢查。

針對 TextBox 和 RichEditBox 控制項,預設會開啟拼字檢查。 您可以將 IsSpellCheckEnabled 屬性設定為 false,以將其關閉。

適用於設計人員

適用於開發人員 (XAML)