C#UWP自动滚动文本

皮蓬·史密斯

我目前正在为树莓派(Windows IoT)构建一个应用程序,该应用程序接受UDP消息并将其显示在屏幕上。

我需要一种使文本自动在屏幕上水平滚动的方法。我不能让用户单击按钮,因为没有输入设备连接到Pi。
到目前为止,我一直在使用scrollviewer并手动调整其Horizo​​ntalAlignment值,但无济于事(我是整个UWP / XAML的新手)。

谁能给我看一些代码,该代码可以使文本块中的文本自动从右向左滚动(这与文本在数字显示器上的滚动方式非常相似)不会中断应用程序中运行的任何其他代码(接收udp消息和滴答计时器)?

提前谢谢了。

格蕾丝·冯

您可以设置a的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 eventScrollViewer启动定时器,并在Unloaded event该的ScrollViewer停止这个定时器:

private void scrollViewer_Loaded(object sender, RoutedEventArgs e)
{
    timer.Tick += (ss, ee) =>
    {
        if (timer.Interval.Ticks == 300)
        {
            //each time set the offset to scrollviewer.HorizontalOffset + 5
            scrollviewer.ScrollToHorizontalOffset(scrollviewer.HorizontalOffset + 5);
            //if the scrollviewer scrolls to the end, scroll it back to the start.
            if (scrollviewer.HorizontalOffset == scrollviewer.ScrollableWidth)
                scrollviewer.ScrollToHorizontalOffset(0);
        }
    };
    timer.Interval = new TimeSpan(300);
    timer.Start();
}

private void scrollviewer_Unloaded(object sender, RoutedEventArgs e)
{
    timer.Stop();
}

注意,您的应用程序是用于树莓派的,刚刚在RP2上测试了此代码,操作系统版本10.0.14376.0,它正常工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C#UWP自动滚动文本

来自分类Dev

C#UWP SpeechRecognizer问题

来自分类Dev

C#UWP TextBlock文本以编程方式更改按钮样式

来自分类Dev

通过代码C#UWP旋转位图

来自分类Dev

C#UWP隐藏软导航栏

来自分类Dev

在C#UWP中打印ScrollViewer的内容

来自分类Dev

使用ThreadPoolTimer C#uwp的时钟程序

来自分类Dev

数据不显示(C#UWP)

来自分类Dev

从列表中获取价值(C#UWP)

来自分类Dev

imageControl.Source(C#UWP)

来自分类Dev

如何从C ++ UWP App引用C#UWP类库

来自分类Dev

如何使Webview作为BackgroundTask C#UWP Windows 10运行

来自分类Dev

C#uwp应用程序防止空闲模式

来自分类Dev

C#UWP保存不带对话框的StorageFile

来自分类Dev

C#UWP使用Microsoft Edge打开Web网址

来自分类Dev

C#UWP数组测量值的平均值

来自分类Dev

C#UWP如何获取更改后的ComboBoxItem的值

来自分类Dev

c#uwp模板绑定和依赖属性

来自分类Dev

UWP 从头到尾滚动文本

来自分类Dev

如何给文本区域自动滚动

来自分类Dev

Android中文本的自动垂直滚动

来自分类Dev

使用自动换行垂直滚动文本

来自分类Dev

JavaFX TextArea中的文本自动滚动

来自分类Dev

搜索文本并自动向下滚动

来自分类Dev

如何在C#UWP应用程序中使用ASP.NET Core WebAPI?

来自分类Dev

在C#UWP应用中存储传感器数据的最佳和最快方法

来自分类Dev

使用System.IO.Directory的C#UWP返回空数组?

来自分类Dev

在C#UWP中从RIOT Api反序列化Json的问题

来自分类Dev

在Windows 10 C#UWP Universal Windows应用中获取用户名