是否可以停止滚动浏览滚动查看器中的内容? e.g。
<ScrollViewer>
<Grid>
<TextBlock /> <!-- I want not to scroll this item when rest is scrolling -->
<!-- other controls -->
</Grid>
</ScrollViewer>
不考虑将元素放在scrollviewer外部。
答案 0 :(得分:0)
我会这样做:
<ScrollViewer>
<TextBlock />
<ScrollViewer>
<Grid>
<!-- other controls -->
</Grid>
</ScrollViewer>
</ScrollViewer>
答案 1 :(得分:0)
如果这是在使用WPF的桌面应用程序中,最好的方法是覆盖ScrollViewer的ArrangeOverride方法。在这种情况下,我建议您创建自己的自定义附加属性,如 ScrollHoldOffset ,并将其分配给TextBox。然后,在覆盖中,您可以检查每个控件以查看是否已设置此属性。如果是,则控件应保持在原位而不是滚动,直到滚动超过某个阈值( ScrollHoldOffset )。
如果这是一个Windows应用商店应用程序,那将会更加困难,因为ScrollViewer是密封的,因此不能继承,也不能覆盖ArrangeOverride方法。每当滚动位置改变时,可以编写一些代码来“撤消”滚动。我从this example开始,向您展示如何订阅滚动条位置更改事件。然后,您可以更改RenderTransform以偏移滚动。
抱歉,我今天没有时间对其进行编码,所以它必须在理论上而不是练习中。我希望它有所帮助。
开发人员的支持,设计支持和更加出色的善意:http://bit.ly/winappsupport