2013-02-18 105 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