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