TextBox 控件样式提示
TextBox 控件可用于获取用户的输入或显示文本。它通常用于可编辑文本,但也可以设置为只读。TextBox 对象可显示多行并根据控件大小对文本进行换行。
与所有控件一样,您可以修改 TextBox 控件,使其外观与其默认外观截然不同。默认情况下,TextBox 控件如下所示:
重要的 TextBox 控件属性
TextBox 控件是一种文本控件,因此您可以在“属性”面板中的“公共属性”下设置“Text”属性,以在 TextBox 控件中显示文本。
选择“IsReadOnly”属性便可将 TextBox 控件设置为只读。
您可以通过选择“AcceptsReturn”属性允许用户将新行字符添加到其输入的文本中。如果这样做,则还可能需要通过设置“HorizontalScrollBarVisibility”和“VerticalScrollBarVisibility”属性来启用滚动条。
若要指定字体大小、字体等,请在“属性”面板中设置“文本”下的属性。您甚至可以将自定义字体添加到项目中,并嵌入这些字体,以用于文本控件中。
有关详细信息,请参阅绘制文本。
可通过下列方法设置这些属性:
设置对象的属性 在美工板上绘制 TextBox 对象后,您可以直接设置该对象的属性。如果希望几个 TextBox 对象使用相同的值,请在样式中设置这些属性。
在样式中设置属性 如果您在 TextBox 对象的 样式中设置这些属性,则在默认情况下,使用该样式的任何 TextBox 对象都将使用这些值。您可以为特定对象覆盖这些值。
有关详细信息,请参阅创建样式。
TextBox 模板的部件
TextBox 控件使用一种模板来定义其外观:即“TextBox 模板”。该模板的单一部件将对应用了该模板的 TextBox 对象的外观和行为产生影响。
模板中可存在其他对象,以修饰 TextBox 控件的外观,但下表中列出的部件与约定的部件行为相关。
若要查看模板的部件,请在修改模板的同时打开“部件”面板。在“对象和时间线”面板中,在“部件”面板中作为部件的对象旁边将出现一个 图标。
部件名称 |
对象类型 |
描述 |
---|---|---|
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 控件无效且有键盘焦点时的外观。 |
提示: |
---|
状态组包含属于同一逻辑类别并且无法同时显示的可视状态。例如,“CommonStates”组包含的状态和用户与输入设备(例如鼠标)的交互相关。 一次只能显示状态组中的一种状态,但一个组中的状态可与另一个状态组中的状态同时显示。 |
当您选择状态时,状态记录功能将启用,并且将为该状态记录您进行的任何更改。若要禁用状态记录功能,请单击记录按钮 ,或者在“状态”面板中选择“Base”。若要在两个独立状态处于活动状态时修改控件的外观,您可以固定一个状态组中状态的预览,同时修改另一个状态组中的状态。
将对象转换为 TextBox 控件
若要修改 TextBox 控件的模板,请执行下列操作之一:
在美工板上绘制一个“TextBox”,然后创建默认模板的副本。
有关详细信息,请参阅创建或修改模板。
通过绘制对象或导入作品来设计 TextBox 控件的外观,然后使用“构成控件”命令。
如果使用“构成控件”命令,请按以下步骤进行操作,以确保创建 TextBox 模板所需的所有对象:
若要在 TextBox 控件中显示文本,请向构成 TextBox 控件外观的对象附加“TextBlock”。
将包含 TextBlock 对象的作品转换为 TextBox 控件的模板时,“构成控件”命令会执行下列操作:
将表示 ContentElement 部件的 ScrollViewer 对象放入 TextBlock 控件的模板中。
将布局属性从 TextBlock 控件复制到 ContentElement 对象。
将排版属性从 TextBlock 控件复制到 TextBox 控件的样式。(样式环绕模板。)
将“Text”属性从 TextBlock 控件复制到应用了模板的 TextBox 对象。
或者,您可以在将对象转换为控件模板后,将对象分配给 ContentElement 部件。有关详细信息,请参阅为对象分配模板部件。
将对象组合到版式面板中,选择该版式面板,然后在“工具”菜单上,单击“构成控件”。
在出现的对话框中,选择“TextBox”,对模板命名,然后选择模板的存储位置。
单击“确定”之后,Microsoft Expression Blend 将进入模板编辑模式并显示组成 TextBox 控件的对象。可以在此模式下继续修改模板。例如,添加或修改对象,或者在“状态”面板中选择一种状态以修改该状态下模板的外观。
请考虑将模板中对象的某些画笔属性绑定到最终将使用模板的 TextBox 对象的以下属性:
Background
BorderBrush
Foreground
BorderThickness
有关详细信息,请参阅在模板中使用对象属性。
若要退出模板编辑模式,请单击美工板顶部痕迹导航栏中的“[TextBox]”,或单击“对象和时间线”面板中的“范围上移”。
有关如何向其他 TextBox 对象应用新的 TextBox 模板的信息,请参阅应用或删除资源。
引用
您可以在 MSDN 上的 Silverlight Control Gallery(Silverlight 控件库)中找到关于 Microsoft Silverlight TextBox 控件的属性和事件的详细信息。