文字控制項

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

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

這是正確的控制項嗎?

您使用的文字控制項會因情境而異。 請使用本資訊來挑選應用程式中使用的正確文字控制項。

轉譯唯讀文字

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

與 RichTextBlock 相比,TextBlock 通常更容易使用,且有更好的文字呈現效果,因此是多數應用程式 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 Gallery
WinUI Gallery

如果您已安裝 WinUI 2 程式庫應用程式,請按一下此處以開啟應用程式並查看文字控制項的運作情形

Text box

A text box

自動建議方塊

Example of the expanded auto-suggest control

密碼方塊

Password box focus state typing text

建立文字控制項

如需每個日期和時間文字控制項專屬的資訊和範例,請參閱這些文章。

字型和樣式指導方針

如需字型指導方針,請參閱以下文章:

手寫筆輸入

適用於:TextBox、RichEditBox、AutoSuggestBox

從 Windows 10 版本 1803 開始,XAML 文字輸入方塊使用 Windows Ink 特別提供手寫筆輸入的內嵌支援。 當使用者使用 Windows 手寫筆點選文字輸入方塊時,文字方塊會改變形式,讓使用者使用手寫筆直接在其中書寫,而不是開啟另一個輸入面板。

Text box expands when tapped with pen

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

選擇文字控制項的正確鍵盤

適用於:TextBox,PasswordBox、RichEditBox

為協助使用者使用觸控式鍵盤或螢幕輸入面板 (SIP) 輸入資料,您可以設定文字控制項的輸入範圍,使其符合使用者要輸入的資料類型。

提示:此資訊僅適用於 SIP。 不適用於硬體鍵盤或 Windows 輕鬆存取選項中提供的螢幕小鍵盤。

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

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

重要
輸入範圍並不會導致執行任何輸入驗證,也不會防止使用者透過硬體鍵盤或其他輸入裝置提供任何輸入。 您仍然必須視需要在程式碼中驗證輸入。

如需瞭解詳情,請參閱使用輸入範圍變更觸控式鍵盤

色彩字型

適用於:TextBlock、RichTextBlock、TextBox、RichEditBox

Windows 可讓字型為每個圖像加入多個彩色圖層。 舉例來說,Segoe UI Emoji 字型可定義 Emoticon 和其他 Emoji 字元的色彩版本。

標準和 RTF 控制項支援顯示色彩字型。 根據預設,IsColorFontEnabled 屬性為 true,且使用這些額外圖層的字型會轉譯成彩色。 系統的預設彩色字型為 Segoe UI Emoji,且控制項會回復為此字型,以便顯示彩色字符。

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

轉譯的文字外觀如下:

Text block with color font

如需瞭解詳情,請參閱 IsColorFontEnabled 屬性。

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

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

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

您不需要在檔案中以這些字元開始第一個行或段落或結束最後一行或段落;這樣做是表示該位置中有空白的行或段落。

您的應用程式可以使用行分隔符號來表示無條件結束一行。 不過,行分隔符號不會對應個別的歸位字元和換行字元,或這兩種字元的組合。 行分隔符號必須與歸位字元和換行字元分開處理。

您的應用程式可以在文字段落之間插入段落分隔符號。 使用此分隔符號可讓您建立純文本檔案,以便在不同作業系統上格式化為不同的行寬。 目標系統可能忽略任何行分隔符號,只在遇到段落分隔符號拆分段落。

拼字檢查指導方針

適用於:TextBox、RichEditBox

在文字輸入和編輯時,拼字檢查會以紅色波浪線標示文字,藉此向使用者告知拚字錯誤,並為使用者提供方法來修正錯誤。

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

the built-in spell checker

請為這兩種用途使用拼字檢查,並搭配文字輸入控制項:

  • 自動校正拼字錯誤

    拼字檢查引擎如果確定修正結果無誤,就會自動修正拼字錯誤。 舉例來說,引擎會自動將「teh」變更為「the」。

  • 顯示替代拼法

    如果拼字檢查引擎不確定修正是否正確,會在拼字錯誤底下加上紅線,並在您點選或以滑鼠右鍵按一下該字詞時,在操作功能表中顯示替代方案。

  • 使用拼字檢查,可在使用者將字詞或句子輸入文字輸入控制項時提供協助。 拼字檢查適用於觸控、滑鼠和鍵盤輸入。

  • 如果某個字詞可能不存在字典中,或使用者並不重視拼字檢查,請勿使用拼字檢查。 舉例來說,如果文字方塊的用途是擷取電話號碼或名稱,請勿開啟拼字檢查。

  • 請勿單純因為目前的拼字檢查引擎不支援您的應用程式語言就停用拼字檢查。 如果拼字檢查工具不支援語言,它不會執行任何動作,因此將選項保留開啟不會有損失。 此外,某些使用者可能會使用輸入法編輯器 (IME) 將其他語言輸入您的應用程式,而且拼字檢查可能支援該語言。 例如,建置日文的應用程式時,即使拼字檢查引擎暫時無法辨識該語言,也不要關閉拼字檢查。 使用者可能切換至英文輸入法,並在應用程式中輸入英文;如果拼字檢查已啟用,英文就能接受拼字檢查。

如果是 TextBox 和 RichEditBox 控制項,預設會開啟拼字檢查。 您可以將 IsSpellCheckEnabled 屬性設為 false 來關閉拼字檢查。

適用於設計人員

適用於開發人員 (XAML)