[英]XAML WP8 and making a 'TextBlock' scroll down
好的,所以我在Windows Phone 8应用程序中有一个带有TextBlock的XAML页面。 我的困境是:
我实用地向TextBlock添加更多内容(带有Inlines.Add(new Run ...)的带格式的行。由于ScrollViewer的原因,文本块当前从下到上填充,这意味着在一行中一行又一行地出现在底部。我也可以让他们从顶部开始出现,只要TextBlock填满就可以继续向下滚动(实际上看起来会更好),我的TextBlock在ScrollViewer中,如下所示:
<Popup x:Name="send_message_xaml" Grid.Row="1" VerticalOffset="0" Width="750" Height="auto">
<StackPanel Orientation="Vertical" Margin="0,0" Width="auto" Height="auto">
<ScrollViewer Height="345" HorizontalAlignment="Left" Margin="0,0,0,0" Name="scrollViewer1" VerticalAlignment="Bottom" Width="420" VerticalScrollBarVisibility="Auto">
<TextBlock x:Name="message_log" Margin="40,50,0,0" TextWrapping="Wrap" Width="420" VerticalAlignment="Top" FontSize="22"/>
</ScrollViewer>
<TextBox x:Name="message_to_send" InputScope="Chat" Width="480" KeyDown="message_to_send_KeyDown" Margin="15,0"/>
</StackPanel>
</Popup>
如何使文本块滚动,以使最新的附加消息始终位于底部? 我发现了很多这样的线程,但到目前为止,似乎都没有一个能解决我的问题。 我是否需要在附加位置添加一些代码?
您需要基于ScrollableHeight
更新VerticalOffset
。 当您向TextBlock
添加新的内联时,其高度将改变,这将通知父级ScrollViewer
。 因此,在将新项添加到内联之后,请运行Measure
方法并更新VerticalOffset
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.