c#UWP自动滚动文本

时间:2016-07-18 09:48:12

标签: c# xaml uwp uwp-xaml

我目前正在为raspberry Pi(Windows IoT)构建一个应用程序,它接受UDP消息并在屏幕上显示它们。

我需要一种方法让文字自动水平滚动屏幕。我不能让用户点击按钮,因为没有连接到Pi的输入设备 到目前为止,我一直在玩一个滚动查看器并手动调整它的Horizo​​ntalAlignment值,但没有用(我对整个UWP / XAML的东西都是新手)。

任何人都可以向我展示一些代码,这些代码会使文本块中的文本自动从右向左滚动(文本在数字显示器上滚动的方式),这些代码不会中断在应用程序中运行的任何其他代码(接收udp消息并勾选计时器)?

非常感谢提前。

2 个答案:

答案 0 :(得分:6)

您可以在TextBlock内设置ScrollViewer,以便滚动它,例如:

<ScrollViewer x:Name="scrollviewer" VerticalScrollBarVisibility="Disabled" HorizontalScrollBarVisibility="Hidden"
              VerticalScrollMode="Disabled" HorizontalScrollMode="Enabled" Grid.Row="1" Loaded="scrollViewer_Loaded"
              Unloaded="scrollviewer_Unloaded">
    <TextBlock Text="Start:111fdafdilgklnkghiogj2222213135aaaadjiosfuiafkhafuia464676541134564132145546afafkjarpikfsanjahfnvfnvjkhghga:End" TextWrapping="NoWrap"
             FontSize="40" />
</ScrollViewer>

在后面的代码中使用DispatcherTimer来设置滚动计时器,Loaded event ScrollViewer启动此计时器并Unloaded event { {1}}停止此计时器:

ScrollViewer

注意到你的应用程序是针对raspberry Pi,只是在RP2,OS版本10.0.14376.0上测试了这个代码,它运行正常。

答案 1 :(得分:0)

看这篇文章: Multiline Textbox with automatic vertical scroll

将TextBlock替换为只读TextBox,这样您就可以在每次更新内容时以编程方式滚动到结尾。