一个 ScrollingFrame 包含一个可自定义的 画布 和 滚动条,具有内置的滚动交互功能和不同的自定义滚动方式。ScrollingFrame 非常适合在有限空间内显示大量信息,并且它与 列表 和 网格 布局配合良好。

画布
画布 是 ScrollingFrame 的主要区域,可以包含其他 GuiObjects。滚动行为会在以下情况下自动适应:
| 框架设置 | 结果 |
|---|---|
| 框架的 CanvasSize 高于其整体高度;具体来说,总 CanvasSize.Y 超过总 Size.Y。 | 启用了垂直滚动,并且出现了一个垂直滚动条。 |
| 框架的 CanvasSize 宽于其整体宽度;具体来说,总 CanvasSize.X 超过总 Size.X。 | 启用了水平滚动,并且出现了一个水平滚动条。 |
| 框架的 AutomaticCanvasSize 设置为 Y 或 XY,而其内容(子 GuiObjects)的总高度超过总 Size.Y。 | 启用了垂直滚动,并且出现了一个垂直滚动条。 |
| 框架的 AutomaticCanvasSize 设置为 X 或 XY,而其内容(子 GuiObjects)的总宽度超过总 Size.X。 | 启用了水平滚动,并且出现了一个水平滚动条。 |
CanvasPosition 属性反映了画布在框架内的 当前 位置偏移(以像素为单位),并相应地设置滚动条的位置。请注意,如果滚动条不可见,该属性不会产生任何效果。
内边距
滚动框架的 CanvasSize 可能受到 VerticalScrollBarInset 和/或 HorizontalScrollBarInset 属性的影响。在以下示例图中,一个垂直滚动的框架使用 100% 的画布宽度。当 VerticalScrollBarInset 设置为 None(默认)时,画布的宽度延伸到滚动框架的全宽,遮挡了一小部分内容在滚动条下。相反,将 VerticalScrollBarInset 设置为 Always 或 ScrollBar 将画布内缩 ScrollBarThickness 的量,以便画布与滚动条边缘齐平。

滚动条
框架的 滚动条 反映当前画布位置并提供自动拖动滚动的交互功能。对于垂直滚动条,VerticalScrollBarPosition 属性将滚动条的位置切换为画布的左侧或右侧,而水平滚动条只能放置在画布的下方。
滚动条的构造由三个资产属性组成:
- TopImage — 显示在垂直滚动条的顶部,或水平滚动条的左侧(对于水平滚动条顺时针旋转 90°)。
- BottomImage — 显示在垂直滚动条的底部,或水平滚动条的右侧(对于水平滚动条顺时针旋转 90°)。

每个图像根据 ScrollBarThickness 属性进行缩放,该属性改变了垂直滚动条的宽度或水平滚动条的高度。
可以通过 ScrollBarImageColor3 和 ScrollBarImageTransparency 属性进行额外的视觉修改,这两个属性分别调整滚动条图像资产的色调和不透明度。
弹性
默认情况下,ScrollingFrames 在触控设备上表现出弹性滚动行为,这意味着用户可以将画布拖动到超出边界的位置,并且在释放后,画布会弹回到其最小或最大限制。如果您想完全移除弹性行为并确保画布永远不会超出限制,请将 ElasticBehavior 属性设置为 Never。