Silverlight - ScrollViewer 滚动查看器
某些用户界面最终需要显示的信息超出了可用空间。 对此的一种常见解决方案是提供可滚动区域。 Silverlight 通过 ScrollViewer 使这一切变得非常容易。 您可以将其包裹在任何元素周围。 它必须是单个子元素,但它可以是一个面板,如果需要,它又包含更多子元素。
ScrollViewer 对子级执行不受约束的布局,为其提供所需的空间。
观看者希望处于受限的布局环境中,因为整个想法是调整固定空间来容纳可变大小的内容。
必要时它将提供滚动条。 子元素完全不知道正在滚动。
下面给出的是ScrollViewer类的常用属性。
Sr. No. | 属性和描述 |
---|---|
1 | ComputedHorizontalScrollBarVisibility 获取一个值,该值指示水平ScrollBar是否可见。 |
2 | CompatedHorizontalScrollBarVisibilityProperty 标识 ComputedHorizontalScrollBarVisibility 依赖属性。 |
3 | HorizontalScrollBarVisibility 获取或设置一个值,该值指示是否应显示水平 ScrollBar。 |
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 获取或设置一个值,该值指示是否应显示垂直 ScrollBar。 |
20 | VerticalScrollBarVisibilityProperty 标识 VerticalScrollBarVisibility 依赖属性。 |
21 | VerticalScrollMode 获取或设置一个值,该值确定操作输入如何影响垂直轴上的滚动行为。 |
22 | VerticalScrollModeProperty 标识 VerticalScrollMode 依赖属性。 |
下面给出的是ScrollViewer类中常用的事件。
Sr. No. | 事件和描述 |
---|---|
1 | DirectManipulationCompleted 当 ScrollViewer 的任何直接操作完成时发生。 |
2 | DirectManipulationStarted 当开始对 ScrollViewer 进行任何直接操作时发生。 |
3 | ViewChanged 当滚动和缩放等操作导致视图发生变化时发生。 |
4 | ViewChanging 当滚动和缩放等操作导致视图发生更改时发生。 |
下面是ScrollViewer类常用的方法。
Sr. No. | 方法及说明 |
---|---|
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>
编译上述代码后,您将看到以下输出。
正如您所看到的,您可以滚动,这适用于任何内容、形状、位图或更复杂的内容,例如包含其他用户界面元素的网格。
silverlight_constrained_vs_unconstrained.html