WPF - ScrollViewer 控件

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 的输出

我们建议您执行上面的示例代码并尝试 ScrollViewer 类的一些其他属性和事件。

❮ wpf_controls.html