2011-09-01 70 views
2

這可能是一個愚蠢的問題......但我有一個簡單的TextBlock嵌套在ScrollViewer中。當用戶向上滾動時,內容會移動,但當您停止滾動並移除手指時,會再次回到默認位置。我如何設置ScrollViewer,使文本塊保持在滾動的位置,而不會折回?WP7 ScrollViewer - 在查看器的位置滾動到

<ScrollViewer> 
     <TextBlock Height="500" HorizontalAlignment="Left" Margin="130,529,0,0" Name="statusTextBlock" Text="TextBlock" VerticalAlignment="Top" Width="298" TextWrapping="Wrap" /> 
</ScrollViewer> 

非常感謝!

編輯:基於一個建議

,我包裹的ScrollViewer在網格。這並沒有幫助 - 當您從滾動操作中釋放手指時,文本仍會回覆到原始位置。

<ScrollViewer Margin="130,540,0,0"> 
     <Grid Height="500" > 
       <TextBlock HorizontalAlignment="Left" Name="statusTextBlock" Text="TextBlock" VerticalAlignment="Top" TextWrapping="Wrap" /> 
     </Grid> 
</ScrollViewer> 
+0

在編輯中,您將TextBlock包裝在網格中,而不是ScrollViewer。 –

回答

1

將TextBlock包裝在網格中,並在網格上設置高度(如有必要)。另外,我不會推薦爲TextBlock使用靜態寬度。特別是在使用包裝時。您未考慮未來的屏幕尺寸,這是一件壞事™。

<ScrollViewer> 
    <Grid Height="500"> 
     <TextBlock HorizontalAlignment="Left" Margin="130,529,0,0" Name="statusTextBlock" Text="TextBlock" VerticalAlignment="Top" Width="298" TextWrapping="Wrap" /> 
    </Grid> 
</ScrollViewer> 

更新

我不能重新創建您的問題。這是一個很好的例子:

<Grid x:Name="ContentPanel" 
     Grid.Row="1" 
     Margin="12,0,12,0"> 
    <ScrollViewer> 
     <Grid> 
      <TextBlock Text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. In sagittis auctor quam ac dictum. Nam tincidunt nisl id turpis dignissim fringilla. Sed elementum euismod fringilla. Etiam sem sem, congue at euismod ut, blandit vitae metus. Sed venenatis rutrum elit sed vestibulum. Etiam nec tempus massa. Pellentesque leo velit, laoreet nec pulvinar non, tempor et felis. Nunc at pulvinar ipsum. Nullam id lorem id augue viverra elementum sed vitae nibh. Nunc pulvinar purus a est porttitor sit amet rutrum mi eleifend. Praesent vitae urna non est volutpat mattis. Nulla sit amet mollis lectus. In hac habitasse platea dictumst. Duis viverra, lacus ut sollicitudin auctor, lacus velit elementum turpis, a faucibus nibh velit sed ipsum. Vivamus laoreet purus consectetur dui faucibus in ornare lacus congue. Suspendisse laoreet leo laoreet nisl fermentum ut tempus urna placerat. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Aenean sit amet quam odio. Quisque eu mattis mauris. Maecenas congue diam quis magna dignissim a facilisis lectus aliquam. Nunc tristique odio id velit pretium eu scelerisque velit dictum. Cras eget purus massa. Suspendisse potenti. Duis at egestas nunc. Nullam vehicula urna eget neque interdum pellentesque. Nulla non nisl ipsum. Vestibulum congue viverra felis quis congue. Duis sodales, odio vitae aliquam euismod, dolor augue iaculis quam, non hendrerit felis metus quis purus. Suspendisse fringilla vulputate tellus ac consequat. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Phasellus pulvinar accumsan luctus. Nunc vel orci purus, sollicitudin hendrerit orci. Nam commodo, massa volutpat venenatis eleifend, tortor velit tincidunt metus, at molestie felis neque non est. Curabitur lorem est, ullamcorper quis pellentesque et, consequat a tortor. Duis at lorem et erat pretium ultrices. Sed fringilla neque nec ante interdum ultricies. In facilisis augue eget nisi porttitor in semper risus vulputate. Suspendisse id mi velit. Pellentesque in libero ac neque ullamcorper vulputate interdum pharetra ligula. Pellentesque ac diam justo. Maecenas augue est, tincidunt vel lobortis in, condimentum nec felis. Morbi sodales luctus velit, in fringilla augue consectetur sed. Pellentesque ut sodales augue. Etiam et sem lacus. Nullam at erat lectus, lobortis vulputate augue. Curabitur nec risus blandit libero ornare posuere quis ac mi. Quisque sed odio tellus, eu vehicula dolor. Aenean luctus pellentesque rhoncus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam eget augue quis ligula adipiscing molestie. Suspendisse ac dictum lorem. Vivamus lacus diam, tincidunt ut sagittis non, consectetur ut magna. Maecenas lectus lectus, suscipit vitae commodo nec, mollis id nibh. Curabitur venenatis posuere ipsum, nec tincidunt tortor pulvinar vel. Vestibulum metus tortor, gravida eu lacinia ut, mattis sed ante. In eu justo id arcu consectetur molestie. Praesent mattis scelerisque mauris, ac porttitor velit malesuada quis. Etiam elementum sem a eros aliquam venenatis eget in tortor. Pellentesque a risus libero. Donec erat diam, porta id blandit vel, vulputate ac diam." 
         TextWrapping="Wrap" /> 
     </Grid> 
    </ScrollViewer> 
</Grid> 
+0

嗨,克勞斯,所以我嘗試過。當我在網格中指定高度屬性時,文本框在畫布上不再可見,它似乎消失了。如果我從網格中刪除高度屬性,文本框會再次出現,但是滾動功能與之前一樣 - 即完成滾動並釋放手指後,它會恢復原始位置......任何想法爲什麼?謝謝... –

+0

好的,我通過將邊距屬性添加到網格而不是文本框來固定消失的文本框......現在它全部出現在正確的位置 - 但滾動仍然回退到原信號位置......將更新上面的代碼。 –

+0

我無法在這裏重新創建您的問題。查看Lorem Ipsum更新的例子,它工作得很好。根本沒有任何回彈。它必須與其他一些代碼相關。嘗試創建一個新項目,使用我發佈的代碼,並查看它的工作原理。 –

2

我在這裏沒有發現TextBlock的問題。我的設備使用Mango build進行更新,Windows Phone SDK 7.1 RC安裝在我的機器上。