- Silverlight 教程
- Silverlight - 首页
- Silverlight - 概述
- Silverlight - 环境设置
- Silverlight - 快速入门
- Silverlight - XAML 概述
- Silverlight - 项目类型
- Silverlight - 固定布局
- Silverlight - 动态布局
- 受约束与不受约束
- Silverlight - CSS
- Silverlight - 控件
- Silverlight - 按钮
- Silverlight - 内容模型
- Silverlight - ListBox
- Silverlight - 模板
- Silverlight - 可视状态
- Silverlight - 数据绑定
- Silverlight - 浏览器集成
- Silverlight - 浏览器外运行
- Silverlight - 应用程序和资源
- Silverlight - 文件访问
- Silverlight - 视图模型
- Silverlight - 输入处理
- Silverlight - 隔离存储
- Silverlight - 文本
- Silverlight - 动画
- Silverlight - 视频和音频
- Silverlight - 打印
- Silverlight 有用资源
- Silverlight - 快速指南
- Silverlight - 有用资源
- Silverlight - 讨论
Silverlight - ScrollViewer
一些用户界面最终需要显示比可用空间所能容纳的更多信息。一个常见的解决方案是提供一个可滚动区域。Silverlight 通过 ScrollViewer 使这变得非常容易。您可以将其包装在任何元素周围。它必须是一个单子元素,但它可以是一个面板,如果您需要,该面板又可以包含更多子元素。
ScrollViewer 对子元素执行不受约束的布局,为其提供尽可能多的空间。
查看器期望被置于受约束的布局环境中,因为其核心思想是调整固定空间以容纳大小可变的内容。
然后,它会在必要时提供滚动条。子元素完全不会感知到滚动操作。
以下是ScrollViewer类的常用属性。
| 序号 | 属性及说明 |
|---|---|
| 1 | ComputedHorizontalScrollBarVisibility 获取一个值,该值指示水平滚动条是否可见。 |
| 2 | ComputedHorizontalScrollBarVisibilityProperty 标识 ComputedHorizontalScrollBarVisibility 依赖属性。 |
| 3 | HorizontalScrollBarVisibility 获取或设置一个值,该值指示是否应显示水平滚动条。 |
| 4 | HorizontalScrollBarVisibilityProperty 标识 HorizontalScrollBarVisibility 依赖属性。 |
| 5 | HorizontalScrollMode 获取或设置一个值,该值确定操作输入如何影响水平轴上的滚动行为。 |
| 6 | HorizontalScrollModeProperty 标识 HorizontalScrollMode 依赖属性。 |
| 7 | HorizontalSnapPointsAlignment 获取或设置一个值,该值指示现有捕捉点相对于初始视口的水平对齐方式。 |
| 8 | HorizontalSnapPointsAlignmentProperty 标识 HorizontalSnapPointsAlignment 依赖属性。 |
| 9 | IsHorizontalScrollChainingEnabled 获取或设置一个值,该值指示是否为此子元素与其父元素之间(水平轴)启用滚动链接。 |
| 10 | IsHorizontalScrollChainingEnabledProperty 标识 IsHorizontalScrollChainingEnabled 依赖属性。 |
| 11 | IsScrollInertiaEnabled 获取或设置一个值,该值指示滚动操作是否应在其行为和值中包含惯性。 |
| 12 | IsScrollInertiaEnabledProperty 标识 IsScrollInertiaEnabled 依赖属性。 |
| 13 | IsVerticalScrollChainingEnabled 获取或设置一个值,该值指示是否为此子元素与其父元素之间(垂直轴)启用滚动链接。 |
| 14 | IsVerticalScrollChainingEnabledProperty 标识 IsVerticalScrollChainingEnabled 依赖属性。 |
| 15 | ScrollableHeight 获取一个值,该值表示可滚动区域的垂直大小;范围宽度与视口宽度之差。 |
| 16 | ScrollableHeightProperty 标识 ScrollableHeight 依赖属性。 |
| 17 | ScrollableWidth 获取一个值,该值表示可滚动区域的水平大小;范围宽度与视口宽度之差。 |
| 18 | ScrollableWidthProperty 标识 ScrollableWidth 依赖属性。 |
| 19 | VerticalScrollBarVisibility 获取或设置一个值,该值指示是否应显示垂直滚动条。 |
| 20 | VerticalScrollBarVisibilityProperty 标识 VerticalScrollBarVisibility 依赖属性。 |
| 21 | VerticalScrollMode 获取或设置一个值,该值确定操作输入如何影响垂直轴上的滚动行为。 |
| 22 | VerticalScrollModeProperty 标识 VerticalScrollMode 依赖属性。 |
以下是ScrollViewer类的常用事件。
| 序号 | 事件及说明 |
|---|---|
| 1 | DirectManipulationCompleted 当 ScrollViewer 的任何直接操作结束时发生。 |
| 2 | DirectManipulationStarted 当 ScrollViewer 的任何直接操作开始时发生。 |
| 3 | ViewChanged 当滚动和缩放等操作导致视图发生更改时发生。 |
| 4 | ViewChanging 当滚动和缩放等操作导致视图发生更改时发生。 |
以下是ScrollViewer类的常用方法。
| 序号 | 方法及说明 |
|---|---|
| 1 | GetHorizontalScrollBarVisibility 从指定的元素获取 HorizontalScrollBarVisibility 依赖属性/ScrollViewer.HorizontalScrollBarVisibility XAML 附加属性的值。 |
| 2 | GetHorizontalScrollMode 从指定的元素获取 HorizontalScrollMode 依赖属性/ScrollViewer.HorizontalScrollMode XAML 附加属性的值。 |
| 3 | GetIsDeferredScrollingEnabled 从指定的元素获取 IsDeferredScrollingEnabled 依赖属性/ScrollViewer.IsDeferredScrollingInertiaEnabled XAML 附加属性的值。 |
| 4 | GetIsHorizontalScrollChainingEnabled 从指定的元素获取 IsHorizontalScrollChainingEnabled 依赖属性/ScrollViewer.IsHorizontalScrollChainingEnabled XAML 附加属性的值。 |
| 5 | GetIsScrollInertiaEnabled 从指定的元素获取 IsScrollInertiaEnabled 依赖属性/ScrollViewer.IsScrollInertiaEnabled XAML 附加属性的值。 |
| 6 | GetIsVerticalScrollChainingEnabled 从指定的元素获取 IsVerticalScrollChainingEnabled 依赖属性/ScrollViewer.IsVerticalScrollChainingEnabled XAML 附加属性的值。 |
| 7 | GetVerticalScrollBarVisibility 从指定的元素获取 VerticalScrollBarVisibility 依赖属性/ScrollViewer.VerticalScrollBarVisibility XAML 附加属性的值。 |
| 8 | GetVerticalScrollMode 从指定的元素获取 VerticalScrollMode 依赖属性/ScrollViewer.VerticalScrollMode XAML 附加属性的值。 |
| 9 | InvalidateScrollInfo 当描述滚动区域大小和位置的属性的值发生更改时调用。 |
| 10 | ScrollToHorizontalOffset 将 ScrollViewer 内的内容滚动到指定的水平偏移位置。 |
| 11 | ScrollToVerticalOffset 将 ScrollViewer 内的内容滚动到指定的垂直偏移位置。 |
| 12 | SetHorizontalScrollBarVisibility 在指定的元素上设置 HorizontalScrollBarVisibility 依赖属性/ScrollViewer.HorizontalScrollBarVisibility XAML 附加属性的值。 |
| 13 | SetHorizontalScrollMode 在指定的元素上设置 HorizontalScrollMode 依赖属性/ScrollViewer.HorizontalScrollMode XAML 附加属性的值。 |
| 14 | SetIsDeferredScrollingEnabled 在指定的元素上设置 IsDeferredScrollingEnabled 依赖属性/ScrollViewer.IsDeferredScrollingEnabled XAML 附加属性的值。 |
| 15 | SetIsHorizontalScrollChainingEnabled 在指定的元素上设置 IsHorizontalScrollChainingEnabled 依赖属性/ScrollViewer.IsHorizontalScrollChainingEnabled XAML 附加属性的值。 |
| 16 | SetIsScrollInertiaEnabled 在指定的元素上设置 IsScrollInertiaEnabled 依赖属性/ScrollViewer.IsScrollInertiaEnabled XAML 附加属性的值。 |
| 17 | SetIsVerticalScrollChainingEnabled 在指定的元素上设置 IsVerticalScrollChainingEnabled 依赖属性/ScrollViewer.IsVerticalScrollChainingEnabled XAML 附加属性的值。 |
| 18 | SetVerticalScrollBarVisibility 在指定的元素上设置 VerticalScrollBarVisibility 依赖属性/ScrollViewer.VerticalScrollBarVisibility XAML 附加属性的值。 |
| 19 | SetVerticalScrollMode 在指定的元素上设置 VerticalScrollMode 依赖属性/ScrollViewer.VerticalScrollMode XAML 附加属性的值。 |
以下是滚动视图属性的实现。
<UserControl
xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d = "http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc = "http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:sdk = "http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk"
x:Class = "ScrollViewerExample.MainPage"
mc:Ignorable = "d"
d:DesignHeight = "300" d:DesignWidth = "400">
<Grid x:Name = "LayoutRoot" Background = "White">
<ScrollViewer HorizontalScrollBarVisibility = "Auto"
VerticalScrollBarVisibility = "Auto">
<StackPanel>
<Rectangle Fill = "Gray" Width = "100" Height = "100" />
<Button x:Name = "button" Content = "Button" Width = "75"/>
<sdk:Calendar Height = "169" Width = "230"/>
<Rectangle Fill = "AliceBlue" Width = "475" Height = "100" />
</StackPanel>
</ScrollViewer>
</Grid>
</UserControl>
编译上述代码后,您将看到以下输出。
您可以看到您可以四处滚动,这适用于任何内容,例如形状、位图或更复杂的内容,例如包含其他用户界面元素的 Grid。