2013-02-18 74 views
0

内容是否可以停止滚动在一个ScrollViewer中内容?例如停止滚动在一个ScrollViewer中

<ScrollViewer> 
    <Grid> 
     <TextBlock /> <!-- I want not to scroll this item when rest is scrolling --> 
     <!-- other controls --> 
    </Grid> 
</ScrollViewer> 

不考虑将元素放置在滚动查看器外部。

+0

你为什么不解释什么* *你想实现 - 从它你不会在去长相原因正确的方向... – Blachshma 2013-02-18 14:03:21

+0

我希望得到一个外观和感觉的窗口8旅行应用程序,如在WPF – Gulshan 2013-02-18 14:04:26

+2

好吧滚动效果,为什么不能正文块是ScrollViewer中之外? – Blachshma 2013-02-18 14:09:32

回答

0

我会做的方式:

<ScrollViewer> 
    <TextBlock /> 
    <ScrollViewer> 
     <Grid> 
      <!-- other controls --> 
     </Grid> 
    </ScrollViewer> 
</ScrollViewer> 
0

如果这是在使用WPF可能做到这一点的最好的地方将是压倒一切的ScrollViewer的ArrangeOverride方法的桌面应用程序。在这种情况下,我会建议像创建自己的自定义附加属性ScrollHoldOffset和分配,为文本框。然后,在覆盖中,您可以检查每个控件以查看它是否具有此属性集。如果是的话,控制应该保持在适当位置,而不是滚动,直到滚动已经超过某个阈值(ScrollHoldOffset)。

如果这是一个Windows商店应用这是怎么回事,因为ScrollViewer中密封要困难的多,因此不能从继承也不能ArrangeOverride方法被重写。当滚动位置改变时,编写一些代码来“撤消”滚动可能是可能的。我将从this example开始,向您展示如何订阅滚动条位置更改事件。然后,您可以更改RenderTransform以抵消滚动。

对不起,我没有时间今天编写这件事,所以它不得不在理论上,而不是实践。我希望它有帮助。

开发支持,设计支持和更多的真棒善良的人:http://bit.ly/winappsupport