ListBox 控件样式设置提示

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

ListBox 控件表示一个项集合。您可以通过将 ListBox 控件绑定到数据源或通过显示未绑定的项来填充该控件。ListBox 控件是一种项目控件,这意味着您可以用包含文本或其他控件的项目来填充该控件。

与所有控件一样,您可以修改 ListBox 控件(以及 ListBox 对象中包含的每个 ListBoxItem 控件),使其外观与其默认外观截然不同。默认情况下,ListBox 控件如下所示:

Ee371162.3cc2d3af-6781-4937-b068-c3448a56406d(ZH-CN,Expression.30).png

重要的 ListBox 控件属性

通过在“属性”面板的“公共属性”下设置“SelectedIndex”属性,您可以设置在 ListBox 控件中处于选定状态的项。如果值为 -1,则显示未进行任何选择的 ListBox 对象。如果值为 0,则显示选定了第一项的 ListBox 对象。

若要向 ListBox 控件中添加项,您可以手动添加 ListBoxItem 对象,或者可以将数据集合绑定到 ListBox 对象以使各项自动出现。

有关详细信息,请参阅将对象绑定到数据创建示例数据

ListBox 模板的部件

ListBox 控件只使用一个模板来定义其外观,即,“ListBox 模板”。该模板的各个部件将对应用了该模板的 ListBox 对象的外观和行为产生影响。

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

若要设置 ListBox 控件所包含的各项的样式,您必须修改其他模板。例如,如果 ListBox 控件绑定了数据,则用于设置它所包含各项的样式的模板是生成的项模板(数据模板)。如果 ListBox 控件未绑定数据,则没有应用于它所包含各项的模板。您要修改的是各项本身的模板,例如 ListBoxItem 模板。

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

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

部件名称

对象类型

描述

ScrollViewer

ScrollViewer

用于在可滚动的窗口中显示项的对象。

此部件是必需的。

可以将修改的模板应用于 ListBox 模板中的 ScrollViewer 对象。也可以将修改的模板应用于 ScrollViewer 对象的 ScrollBar 对象。这样将会生成通过以下方式嵌套的模板:

Ee371162.b8a37dc0-a65e-4fe1-8a9f-df485bb1bbae(ZH-CN,Expression.30).png

Ee371162.095c13e8-6ed8-4572-9bd2-b2d6bdfdf199(ZH-CN,Expression.30).png

ListBox 控件。ListBox 控件是绑定到数据源中的项或显示个别未绑定对象的项列表的容器。

Ee371162.e1a62fcf-2f5c-4263-95fe-a9bf97616b85(ZH-CN,Expression.30).png

ListBox 模板内的 ScrollViewer 控件。

Ee371162.b36987f6-e914-4b58-99f2-a76c47128837(ZH-CN,Expression.30).png

ListBox 控件中的未绑定项。

Ee371162.41999197-e26c-42b9-8039-58ce07f5b5ba(ZH-CN,Expression.30).png

ScrollViewer 模板内的垂直 ScrollBar 控件。

Ee371162.a5d608f2-bba2-48c5-8b15-2c115db86acc(ZH-CN,Expression.30).png

ScrollBar 模板内的垂直 Thumb 控件。

Ee371162.15de085f-48f5-41dd-a286-e3dcb4cfd18b(ZH-CN,Expression.30).png

ScrollBar 模板内的垂直 RepeatButton 控件,可大幅度减小 ScrollBar 控件的值。

Ee371162.1d2fe38a-3fd8-4951-b978-7e44b6f2401d(ZH-CN,Expression.30).png

ScrollBar 模板内的垂直 RepeatButton 控件,可小幅度减小 ScrollBar 控件的值。

有关设置 ScrollViewer 和 ScrollBar 对象样式的详细信息,请参阅 ScrollViewer 控件样式提示ScrollBar 控件样式设置提示

ListBox 控件的状态

默认情况下,ListBox 控件所处的状态可以为“ValidationStates”状态组中的以下三种状态之一:

状态名称

描述

Valid

控件有效时 ListBox 控件的外观。

InvalidUnfocused

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

InvalidFocused

控件无效但有键盘焦点时 ListBox 控件的外观。

当您选择状态时,状态记录功能将启用,并且将为该状态记录您进行的任何更改。若要禁用状态记录功能,请在美工板上单击记录按钮 Ee371162.0dcc6415-6d4e-4fcf-a9a3-eb4664cb6cbc(ZH-CN,Expression.30).png,或者在“状态”面板中选择“Base”。

将对象转换为 ListBox 控件

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

  • 在美工板上绘制“ListBox”控件 Ee371162.b174a511-dd12-4a45-a986-034de7693de9(ZH-CN,Expression.30).png,然后创建默认模板的副本。

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

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

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

  1. 将希望用于定义 ListBox 控件的外观的所有对象组合到一个 Grid 控件中。请包括那些未预定成为模板部件的对象。

  2. 选择新的 Grid 控件,然后在“工具”菜单上,单击“构成控件”。

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

    有关位置的信息,请参阅创建资源

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

  5. 若要创建 ScrollViewer 部件,请在“部件”面板中双击“ScrollViewer”。在新的“ScrollViewer”对象处于选定状态时,在其内部绘制一个“ItemsPresenter”控件。使用“选择”工具 Ee371162.2ff91340-477e-4efa-a0f7-af20851e4daa(ZH-CN,Expression.30).png 或“属性”面板中“布局”下的属性,来重设这些对象的大小并在模板内移动这些对象。

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

    • Background

    • BorderBrush

    • Foreground

    • BorderThickness

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

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

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

引用

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

另请参见

任务

使用 DataGrid 控件

使用 TreeView 控件

概念

常用 Silverlight 控件的样式提示

SimpleListBox 和 SimpleListBoxItem

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

设置显示数据的控件的样式