ListBox 控件样式设置提示
ListBox 控件表示一个项集合。您可以通过将 ListBox 控件绑定到数据源或通过显示未绑定的项来填充该控件。ListBox 控件是一种项目控件,这意味着您可以用包含文本或其他控件的项目来填充该控件。
与所有控件一样,您可以修改 ListBox 控件(以及 ListBox 对象中包含的每个 ListBoxItem 控件),使其外观与其默认外观截然不同。默认情况下,ListBox 控件如下所示:
重要的 ListBox 控件属性
通过在“属性”面板的“公共属性”下设置“SelectedIndex”属性,您可以设置在 ListBox 控件中处于选定状态的项。如果值为 -1,则显示未进行任何选择的 ListBox 对象。如果值为 0,则显示选定了第一项的 ListBox 对象。
若要向 ListBox 控件中添加项,您可以手动添加 ListBoxItem 对象,或者可以将数据集合绑定到 ListBox 对象以使各项自动出现。
ListBox 模板的部件
ListBox 控件只使用一个模板来定义其外观,即,“ListBox 模板”。该模板的各个部件将对应用了该模板的 ListBox 对象的外观和行为产生影响。
提示: |
---|
若要设置 ListBox 控件所包含的各项的样式,您必须修改其他模板。例如,如果 ListBox 控件绑定了数据,则用于设置它所包含各项的样式的模板是生成的项模板(数据模板)。如果 ListBox 控件未绑定数据,则没有应用于它所包含各项的模板。您要修改的是各项本身的模板,例如 ListBoxItem 模板。 |
模板中可存在其他对象,以修饰 ListBox 控件的外观,但下表中列出的部件与约定的部件行为相关。
若要查看模板的部件,请在修改模板的同时打开“部件”面板。在“对象和时间线”面板中,在“部件”面板中作为部件的对象旁边将出现一个 图标。
部件名称 |
对象类型 |
描述 |
---|---|---|
ScrollViewer |
ScrollViewer |
用于在可滚动的窗口中显示项的对象。 此部件是必需的。 |
可以将修改的模板应用于 ListBox 模板中的 ScrollViewer 对象。也可以将修改的模板应用于 ScrollViewer 对象的 ScrollBar 对象。这样将会生成通过以下方式嵌套的模板:
ListBox 控件。ListBox 控件是绑定到数据源中的项或显示个别未绑定对象的项列表的容器。 |
|
ListBox 模板内的 ScrollViewer 控件。 |
|
ListBox 控件中的未绑定项。 |
|
ScrollViewer 模板内的垂直 ScrollBar 控件。 |
|
ScrollBar 模板内的垂直 Thumb 控件。 |
|
ScrollBar 模板内的垂直 RepeatButton 控件,可大幅度减小 ScrollBar 控件的值。 |
|
ScrollBar 模板内的垂直 RepeatButton 控件,可小幅度减小 ScrollBar 控件的值。 |
有关设置 ScrollViewer 和 ScrollBar 对象样式的详细信息,请参阅 ScrollViewer 控件样式提示和 ScrollBar 控件样式设置提示。
ListBox 控件的状态
默认情况下,ListBox 控件所处的状态可以为“ValidationStates”状态组中的以下三种状态之一:
状态名称 |
描述 |
---|---|
Valid |
控件有效时 ListBox 控件的外观。 |
InvalidUnfocused |
控件无效并且没有键盘焦点时 ListBox 控件的外观。 |
InvalidFocused |
控件无效但有键盘焦点时 ListBox 控件的外观。 |
当您选择状态时,状态记录功能将启用,并且将为该状态记录您进行的任何更改。若要禁用状态记录功能,请在美工板上单击记录按钮 ,或者在“状态”面板中选择“Base”。
将对象转换为 ListBox 控件
若要修改 ListBox 控件的模板,请执行下列操作之一:
在美工板上绘制“ListBox”控件 ,然后创建默认模板的副本。
有关详细信息,请参阅创建或修改模板。
通过绘制对象或导入作品来设计 ListBox 控件的外观,然后使用“构成控件”命令。
如果使用“构成控件”命令,请按以下步骤进行操作,以确保创建 ListBox 模板需要的所有对象:
将希望用于定义 ListBox 控件的外观的所有对象组合到一个 Grid 控件中。请包括那些未预定成为模板部件的对象。
选择新的 Grid 控件,然后在“工具”菜单上,单击“构成控件”。
在出现的对话框中,选择“ListBox”,为模板命名,然后选择模板的存储位置。
有关位置的信息,请参阅创建资源。
单击“确定”之后,Microsoft Expression Blend 将进入模板编辑模式,并显示组成 ListBox 控件的对象。可以在此模式下继续修改模板。例如,添加或修改对象,或者在“状态”面板中选择一种状态以修改该状态下模板的外观。
若要创建 ScrollViewer 部件,请在“部件”面板中双击“ScrollViewer”。在新的“ScrollViewer”对象处于选定状态时,在其内部绘制一个“ItemsPresenter”控件。使用“选择”工具 或“属性”面板中“布局”下的属性,来重设这些对象的大小并在模板内移动这些对象。
考虑将模板中对象的某些画笔属性绑定到将最终使用模板的 ListBox 对象的以下属性:
Background
BorderBrush
Foreground
BorderThickness
有关详细信息,请参阅在模板中使用对象属性。
若要退出模板编辑模式,请在美工板顶部的痕迹导航栏中单击“[ListBox]”,或者在“对象和时间线”面板中单击“范围上移”。
有关向其他 ListBox 对象应用新的 ListBox 模板的信息,请参阅应用或删除资源。
引用
您可以在 MSDN 上的 Silverlight Control Gallery(Silverlight 控件库)中找到有关 Microsoft Silverlight ListBox 控件的属性和事件的详细信息。