2011-09-01 69 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安装在我的机器上。