ScrollViewer IsHorizo​​ntalScrollChainingEnabled和IsHorizo​​ntalRailEnabled功能

Tho*_*ter 3 xaml uwp

有人可以解释这两个属性究竟是做什么的吗?

IsHorizo​​ntalScrollChainingEnabled
IsHorizo​​ntalRailEnabled

  1. 我用嵌套的ScrollViewers尝试了第一个,但是在功能上找不到任何区别.默认情况下是启用还是禁用?它究竟做了什么,据我所知,没有关于文档或Google可用功能的信息.

    Docs:True表示从子级到父级的水平滚动链接; 否则,错误.

  2. 两个属性HorizontalScrollBarVisibility(Visible/Collapsed)和HorizontalScrollMode(Enabled/Disabled)对我有意义,但在什么情况下我应该使用IsHorizontalRailEnabled

    Docs:True表示启用水平滚动轨道; 否则,错误.默认值为true.

Dec*_*oon 7

滚动链接

<ScrollViewer Background="Red" Height="600">
    <ScrollViewer Background="Blue" Margin="50,150" Height="400" IsVerticalScrollChainingEnabled="False">
        <Rectangle Height="500"/>
    </ScrollViewer>
</ScrollViewer>
Run Code Online (Sandbox Code Playgroud)
  • 外部ScrollViewer高600像素,但内容高700像素.
  • 固有的ScrollViewer高400像素,但内容高达500像素.
  • 因此,两个ScrollViewers都可以垂直滚动显示另外100px的内容不可见.

滚动链定义了当内部ScrollViewer滚动到顶部或底部范围之外时,滚动内部ScrollViewer(通过触摸)是否会影响外部ScrollViewer的滚动位置.

在此示例中尝试通过触摸滚动内部ScrollViewer.无论你做什么,你只能滚动内部ScrollViewer,外部ScrollViewer的滚动位置不受影响.

如果您的ScrollViewer同时启用了水平和垂直滚动,那么有时您需要定义触摸滚动行为,以便在水平或垂直方向上"几乎"的运动被锁定到主轴.这是标准的行为,在手机上滚动时的网页-和滚动上下的页面将只有垂直和不滚动页面水平(除非你的触摸动作不是"垂直不够",在这种情况下,ScrollViewer中,然后将了页面而不是仅向一个方向滚动).

在手机上的边缘尝试一下.放大网页然后垂直滚动,并保持滚动而不会将手指从屏幕上抬起.即使您水平移动手指(所有在同一触摸动作中),您也可以看到如何只能垂直滚动?这是滚动轨道的动作.

图

在上图中,中心点是ScrollViewer中触摸交互的起点.然后,您可以沿特定方向移动手指(或笔,无论如何).如果您在黄色区域内移动手指,则ScrollViewer将在水平垂直方向上"锁定"滚动动作.如果您将手指移动到蓝色区域,则ScrollViewer会断定您没有尝试在水平或垂直方向上滚动,并且会在您继续移动手指时向两个方向平移内容.我希望那有道理吗?