WPF - ScrollViewer 控件
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 识别垂直Crollmode依赖性属性。 |
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 附加属性的值。 |
示例
让我们创建一个名为 WPFScrollViewerControl 的新 WPF 项目。
以下示例演示如何在 XAML 应用程序中添加 ScrollViewer。
我们将添加两个文本框和一个带有 ScrollViewer 的文本框,并使用一些属性和事件初始化它们。
<Window x:Class = "WPFScrollViewerControl.MainWindow" 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:local = "clr-namespace:WPFScrollViewerControl" mc:Ignorable = "d" Title = "MainWindow" Height = "420" Width = "604"> <Grid> <StackPanel> <!-- A large TextBlock. --> <TextBlock Width = "300" TextWrapping = "Wrap" Margin = "0,0,0,30" Text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ac mi ipsum. Phasellus vel malesuada mauris. Donec pharetra, enim sit amet mattis tincidunt, felis nisi semper lectus, vel porta diam nisi in augue. Pellentesque lacus tortor, aliquam et faucibus id, rhoncus ut justo. Sed id lectus odio, eget pulvinar diam. Suspendisse eleifend ornare libero, in luctus purus aliquet non. Sed interdum, sem vitae rutrum rhoncus, felis ligula ultrices sem, in eleifend eros ante id neque." /> <!-- The same large TextBlock, wrapped in a ScrollViewer. --> <ScrollViewer Height = "200" Width = "200" HorizontalScrollBarVisibility = "Auto" VerticalScrollBarVisibility = "Auto"> <TextBlock Width = "300" TextWrapping = "Wrap" Text = " This license governs use of code marked as sample or example available on this web site without a license agreement, as provided under the section above titled NOTICE SPECIFIC TO SOFTWARE AVAILABLE ON THIS WEB SITE. If you use such code (the software), you accept this license. If you do not accept the license, do not use the software.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ac mi ipsum. Phasellus vel malesuada mauris. Donec pharetra, enim sit amet mattis tincidunt, felis nisi semper lectus, vel porta diam nisi in augue. Pellentesque lacus tortor, aliquam et faucibus id, rhoncus ut justo. Sed id lectus odio, eget pulvinar diam. Suspendisse eleifend ornare libero, in luctus purus aliquet non. Sed interdum, sem vitae rutrum rhoncus, felis ligula ultrices sem, in eleifend eros ante id neque." /> </ScrollViewer> </StackPanel> </Grid> </Window>
当你编译并执行上面的代码时,它将产生以下输出 −
我们建议您执行上面的示例代码并尝试 ScrollViewer 类的一些其他属性和事件。