Xaml ScrollViewer IShorizontalScrollChainEnabled和IsHorizontalRailEnabled功能

Xaml ScrollViewer IShorizontalScrollChainEnabled和IsHorizontalRailEnabled功能,xaml,uwp,Xaml,Uwp,有人能解释一下这两个属性到底是做什么的吗 我用嵌套的ScrollViewer尝试了第一个,但在功能上没有发现任何差异。默认情况下是启用还是禁用?它到底做了什么?据我所知,在文档或谷歌中没有关于功能的信息。 Docs:True,启用从子级到父级的水平滚动链接;否则,错误 这两个属性HorizontalScrollBarVisibility(可见/折叠)和HorizontalScrollMode(启用/禁用)对我来说很有意义,但是在什么情况下我应该使用IsHorizontalRailEnabl

有人能解释一下这两个属性到底是做什么的吗


  • 我用嵌套的ScrollViewer尝试了第一个,但在功能上没有发现任何差异。默认情况下是启用还是禁用?它到底做了什么?据我所知,在文档或谷歌中没有关于功能的信息。 Docs:True,启用从子级到父级的水平滚动链接;否则,错误

  • 这两个属性
    HorizontalScrollBarVisibility
    (可见/折叠)和
    HorizontalScrollMode
    (启用/禁用)对我来说很有意义,但是在什么情况下我应该使用
    IsHorizontalRailEnabled
    ? Docs:True可启用水平滚动导轨;否则,错误。默认值为true


  • 滚动链接

    <ScrollViewer Background="Red" Height="600">
        <ScrollViewer Background="Blue" Margin="50,150" Height="400" IsVerticalScrollChainingEnabled="False">
            <Rectangle Height="500"/>
        </ScrollViewer>
    </ScrollViewer>
    
    
    
    • 外部ScrollViewer的高度为600px,但其内容的高度为700px
    • innter ScrollViewer的高度为400px,但其内容的高度为500px
    • 因此,两个ScrollViewer都可以垂直滚动,以显示额外的100px的不可见内容
    滚动链接定义当内部ScrollViewer滚动超过顶部或底部范围时,滚动内部ScrollViewer(通过触摸)是否会影响外部ScrollViewer的滚动位置

    在本例中,尝试通过触摸滚动内部ScrollViewer。无论您做什么,您只能滚动内部ScrollViewer,而外部ScrollViewer的滚动位置不受影响

    轨道

    如果您的ScrollViewer同时启用了水平和垂直滚动,那么有时您需要定义触摸滚动行为,以便在水平或垂直方向上“几乎”的运动锁定到主导轴。这是在移动电话上滚动网页时的标准行为——上下滚动页面只会垂直滚动页面,而不会水平滚动页面(除非您的触摸动作不够“垂直”,在这种情况下,ScrollViewer将平移页面,而不是只向一个方向滚动)

    在移动设备上的Edge中试用。放大网页,然后垂直滚动,保持滚动而不将手指抬离屏幕。看看你如何才能垂直滚动,即使你水平移动你的手指(都在同一个触摸动作)?这就是滚动导轨的作用


    在上图中,中心点是ScrollViewer中触摸交互的起点。然后将手指(或笔,无论什么)移动到特定的方向。如果在黄色区域内移动手指,ScrollViewer将在水平或垂直方向上“锁定”滚动运动。如果您将手指移动到蓝色区域,则ScrollViewer会得出结论,您没有尝试在水平或垂直方向上滚动,并会在继续移动手指时在两个方向上平移内容。我希望这是有道理的?

    谢谢,这是有道理的!我不知道滚动链接只会影响触摸。有没有办法用鼠标滚轮获得滚动链接?鼠标输入似乎只影响焦点中的ScrollViewer。光标下的ScrollViewer将在移动鼠标滚轮时滚动,即使窗口不是顶级窗口(这是自Windows 10以来的系统范围)。专注与此无关。我想专注是个错误的词。我这么问是因为我找不到解决另一个问题的办法。。