繁体   English   中英

XAML WP8并使“ TextBlock”向下滚动

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM