TextBox 控件样式提示

Ee371168.0b2c798e-86c6-4ea2-a8a6-5cf1f12be1e2(ZH-CN,Expression.30).png

TextBox 控件可用于获取用户的输入或显示文本。它通常用于可编辑文本,但也可以设置为只读。TextBox 对象可显示多行并根据控件大小对文本进行换行。

与所有控件一样,您可以修改 TextBox 控件,使其外观与其默认外观截然不同。默认情况下,TextBox 控件如下所示:

Ee371168.f77261da-feb5-4693-b764-582a9cc93c12(ZH-CN,Expression.30).png

重要的 TextBox 控件属性

TextBox 控件是一种文本控件,因此您可以在“属性”面板中的“公共属性”下设置“Text”属性,以在 TextBox 控件中显示文本。

选择“IsReadOnly”属性便可将 TextBox 控件设置为只读。

您可以通过选择“AcceptsReturn”属性允许用户将新行字符添加到其输入的文本中。如果这样做,则还可能需要通过设置“HorizontalScrollBarVisibility”和“VerticalScrollBarVisibility”属性来启用滚动条。

若要指定字体大小、字体等,请在“属性”面板中设置“文本”下的属性。您甚至可以将自定义字体添加到项目中,并嵌入这些字体,以用于文本控件中。

有关详细信息,请参阅绘制文本

可通过下列方法设置这些属性:

  • 设置对象的属性   在美工板上绘制 TextBox 对象后,您可以直接设置该对象的属性。如果希望几个 TextBox 对象使用相同的值,请在样式中设置这些属性。

  • 在样式中设置属性   如果您在 TextBox 对象的 Ee371168.94fa7fc4-4f3e-4e84-9ba1-287f1b894371(ZH-CN,Expression.30).png 样式中设置这些属性,则在默认情况下,使用该样式的任何 TextBox 对象都将使用这些值。您可以为特定对象覆盖这些值。

    有关详细信息,请参阅创建样式

TextBox 模板的部件

TextBox 控件使用一种模板来定义其外观:即“TextBox 模板”。该模板的单一部件将对应用了该模板的 TextBox 对象的外观和行为产生影响。

模板中可存在其他对象,以修饰 TextBox 控件的外观,但下表中列出的部件与约定的部件行为相关。

若要查看模板的部件,请在修改模板的同时打开“部件”面板。在“对象和时间线”面板中,在“部件”面板中作为部件的对象旁边将出现一个 Ee371168.6cf58c39-edba-4a0e-acbc-1da272f9a387(ZH-CN,Expression.30).png 图标。

Ee371168.62c81ec5-2055-4556-a068-2dc300675ac9(ZH-CN,Expression.30).png

部件名称

对象类型

描述

ContentElement

FrameworkElement

显示文本的对象。

此部件是必需的。

TextBox 模板中的其他对象用于更改不同状态下的 TextBox 控件的外观。

TextBox 控件的状态

默认情况下,TextBox 控件的状态可以是“CommonStates”状态组中的以下四种状态之一,在修改 TextBox 模板时,您可以在“状态”面板中查看这些状态:

状态名称

描述

Normal

TextBox 控件没有交互时的外观。

MouseOver

用户将指针移到 TextBox 控件上时该控件的外观。

Pressed

用户单击 TextBox 控件时或当该控件具有焦点且用户按 Enter 或空格键时该控件的外观。

Disabled

IsEnabled 属性设置为 False 时 TextBox 控件的外观。

TextBox 控件的状态可以是“FocusStates”状态组中的以下两种状态之一:

状态名称

描述

Unfocused

TextBox 控件没有键盘焦点时的外观。

Focused

TextBox 控件具有键盘焦点时的外观。例如,用户可能会按 Tab 键循环显示应用程序中的对象,直到键盘焦点对准 TextBox 控件为止。

TextBox 控件的状态可以是“ValidationStates”状态组中的以下三种状态之一:

状态名称

描述

Valid

TextBox 控件有效时的外观。

InvalidUnfocused

TextBox 控件无效且没有键盘焦点时的外观。

InvalidFocused

TextBox 控件无效且有键盘焦点时的外观。

Ee371168.alert_tip(ZH-CN,Expression.30).gif提示:

状态组包含属于同一逻辑类别并且无法同时显示的可视状态。例如,“CommonStates”组包含的状态和用户与输入设备(例如鼠标)的交互相关。 一次只能显示状态组中的一种状态,但一个组中的状态可与另一个状态组中的状态同时显示。

当您选择状态时,状态记录功能将启用,并且将为该状态记录您进行的任何更改。若要禁用状态记录功能,请单击记录按钮 Ee371168.0dcc6415-6d4e-4fcf-a9a3-eb4664cb6cbc(ZH-CN,Expression.30).png,或者在“状态”面板中选择“Base”。若要在两个独立状态处于活动状态时修改控件的外观,您可以固定一个状态组中状态的预览,同时修改另一个状态组中的状态。

将对象转换为 TextBox 控件

若要修改 TextBox 控件的模板,请执行下列操作之一:

  • 在美工板上绘制一个“TextBox”Ee371168.343296b4-5c7d-4145-84cc-91b08ba67a1b(ZH-CN,Expression.30).png,然后创建默认模板的副本。

    有关详细信息,请参阅创建或修改模板

  • 通过绘制对象或导入作品来设计 TextBox 控件的外观,然后使用“构成控件”命令。

如果使用“构成控件”命令,请按以下步骤进行操作,以确保创建 TextBox 模板所需的所有对象:

  1. 若要在 TextBox 控件中显示文本,请向构成 TextBox 控件外观的对象附加“TextBlock”Ee371168.42165963-00f7-4a33-abcd-b0849edebada(ZH-CN,Expression.30).png

    将包含 TextBlock 对象的作品转换为 TextBox 控件的模板时,“构成控件”命令会执行下列操作:

    • 将表示 ContentElement 部件的 ScrollViewer 对象放入 TextBlock 控件的模板中。

    • 将布局属性从 TextBlock 控件复制到 ContentElement 对象。

    • 将排版属性从 TextBlock 控件复制到 TextBox 控件的样式。(样式环绕模板。)

    • 将“Text”属性从 TextBlock 控件复制到应用了模板的 TextBox 对象。

    或者,您可以在将对象转换为控件模板后,将对象分配给 ContentElement 部件。有关详细信息,请参阅为对象分配模板部件

  2. 将对象组合到版式面板中,选择该版式面板,然后在“工具”菜单上,单击“构成控件”。

  3. 在出现的对话框中,选择“TextBox”,对模板命名,然后选择模板的存储位置。

  4. 单击“确定”之后,Microsoft Expression Blend 将进入模板编辑模式并显示组成 TextBox 控件的对象。可以在此模式下继续修改模板。例如,添加或修改对象,或者在“状态”面板中选择一种状态以修改该状态下模板的外观。

  5. 请考虑将模板中对象的某些画笔属性绑定到最终将使用模板的 TextBox 对象的以下属性:

    • Background

    • BorderBrush

    • Foreground

    • BorderThickness

    有关详细信息,请参阅在模板中使用对象属性

  6. 若要退出模板编辑模式,请单击美工板顶部痕迹导航栏中的“[TextBox]”,或单击“对象和时间线”面板中的“范围上移”Ee371168.55844eb3-ed98-4f20-aa66-a6f5b23eeb2b(ZH-CN,Expression.30).png

有关如何向其他 TextBox 对象应用新的 TextBox 模板的信息,请参阅应用或删除资源

引用

您可以在 MSDN 上的 Silverlight Control Gallery(Silverlight 控件库)中找到关于 Microsoft Silverlight TextBox 控件的属性和事件的详细信息。

另请参见

概念

常用 Silverlight 控件的样式提示

设置支持模板的控件的样式

绘制文本