ScrollViewer 控件样式提示

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

ScrollViewer 控件表示用于显示可滚动查看区域的对象。任何对象都可以放入该查看区域中。例如,ListBox 的模板内有一个 ScrollViewer 控件,该控件包含可显示项列表的 ItemsPresenter。

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

Ee341456.0fb6390c-a631-4f14-8f23-be3723f99405(ZH-CN,Expression.30).png

重要的 ScrollViewer 控件属性

若要在 ScrollViewer 控件中隐藏或显示 ScrollBar 对象,请设置“HorizontalScrollBarVisibility”和“VerticalScrollBarVisibility”属性,当您单击“属性”面板的“布局”类别底部的“显示高级属性”Ee341456.de239c9d-42ce-4f5e-83b9-5f9924c0431f(ZH-CN,Expression.30).png 时,会显示这两个属性。

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

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

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

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

若要在 ScrollViewer 控件中显示项,可在“对象和时间线”下将其选定,使其成为活动容器,然后绘制新对象或将现有对象移至 ScrollViewer 控件中。

如果希望 ScrollViewer 控件显示数据集中的项,请考虑改用 ListBox 控件。

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

ScrollViewer 模板的部件

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

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

若要查看模板的部件,请在修改模板的同时打开“部件”面板。

Ee341456.6b56bb85-3531-440a-8432-7bb0d1e99d83(ZH-CN,Expression.30).png

部件名称

对象类型

描述

ScrollContentPresenter

ScrollContentPresenter

一个显示 ScrollViewer 控件内容的对象。

此部件是必需的。

HorizontalScrollBar

ScrollBar

一个位于 ScrollViewer 控件底部的 ScrollBar 对象。

VerticalScrollBar

ScrollBar

一个位于 ScrollViewer 控件右侧的 ScrollBar 对象。

ScrollViewer 控件的状态

默认情况下,没有为 ScrollViewer 控件定义任何状态。您可以创建自己的状态,或使用其模板中包含 ScrollViewer 控件的控件(如 ListBox 控件)的状态。

有关详细信息,请参阅定义用户控件的可视状态和过渡时间ListBox 控件样式设置提示

将对象转换为 ScrollViewer 控件

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

  • 在美工板上绘制一个“ScrollViewer”控件 Ee341456.bf689d92-3c74-4218-815c-e98c930ac189(ZH-CN,Expression.30).png,然后创建默认模板的副本。

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

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

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

  1. 将要用于定义 ScrollViewer 控件外观的所有对象组合到“网格”版式面板中。

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

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

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

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

  5. 删除在模板中创建的“ContentPresenter”对象。

  6. 若要添加将分配给模板的 ScrollContentPresenter 部件的对象,请双击“部件”面板中的“ScrollContentPresenter”。将新的 ScrollContentPresenter 对象移到您所需的位置。

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

    或者,可以在将对象转换为 ScrollViewer 控件之前,添加 ScrollContentPresenter 对象并将其重命名为“ScrollContentPresenter”。当“构成控件”命令将对象转换为控件时,与模板部件具有相同名称和相同类型的对象会自动转换为该部件。如果没有可用对象,则在“部件”面板中,该部件旁边会显示 Ee341456.64d085f2-3d49-4b74-8070-4d7dae18dc28(ZH-CN,Expression.30).png 图标,这表示未使用此部件。

    有关详细信息,请参阅为对象分配模板部件

  7. 如果您有要用于模板的 HorizontalScrollBar 和 VerticalScrollBar 部件的作品或其他对象,请执行以下操作:

    1. 将每组对象组合到版式面板中。

    2. 右键单击新的版式面板之一,指向“构成 ScrollViewer 的部件”,然后单击“HorizontalScrollBar”或“VerticalScrollBar”。

      此操作会将您的对象替换为 ScrollBar 对象,并使用您的对象来创建将应用于 ScrollBar 对象的样式和模板。

    3. 在“构成部件”对话框中,键入将要创建的 ScrollBar 样式的名称,选择存储样式的位置,然后单击“确定”。

    4. 当新的 ScrollBar 对象处于模板编辑模式时,您可以继续修改对象。

      有关详细信息,请参阅ScrollBar 控件样式设置提示

    若要返回到 ScrollViewer 的模板编辑模式,请在“对象和时间线”面板中单击“范围上移”Ee341456.55844eb3-ed98-4f20-aa66-a6f5b23eeb2b(ZH-CN,Expression.30).png,或在美工板顶部的痕迹导航栏中单击“HorizontalScrollBar”或“VerticalScrollBar”。

  8. 考虑使用模板绑定功能将模板中对象的下列属性绑定到最终将使用该模板的 ScrollViewer 对象的属性:

    • Visibility   使用模板绑定功能将该属性绑定到“Visible”属性。

    • Maximum   使用模板绑定功能将该属性绑定到“Width”属性(针对“HorizontalScrollBar”对象)或“Height”属性(针对“VerticalScrollBar”对象)。

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

  9. 考虑绑定模板中的某些画笔属性:

    • Background

    • BorderBrush

    • BorderThickness

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

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

引用

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

另请参见

概念

常用 Silverlight 控件的样式提示

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

SimpleScrollBar