UWP TextBlock无限滚动计时器(c#xaml)

时间:2016-08-24 15:36:57

标签: c# scroll uwp uwp-xaml

我正在使用C#和xaml中的UWP应用程序,我希望显示无限连续的文本滚动(相同的文本连续滚动,没有任何空白)。

我首先尝试在滚动查看器中嵌入一个文本块,但是当文本通过网格时,它会从头开始,所以有一个空白。

所以我尝试并成功使用计时器滚动textBlock,但现在它是相同的:当文本滚动时,它从头开始,而我想让它连续(如电视新闻) 。

我认为我需要的是2个textBlock一个接着另一个?

这是我的xaml代码(带有计时器)

<TextBlock Name="SongTextBlock" 
 Foreground="White" FontSize="20px" 
 Text=" "     
 TextWrapping="NoWrap" 
 Loaded="scrollText_Loaded" 
 Unloaded="scrollText_Unloaded" />

和C#

private void scrollText_Loaded(object sender, RoutedEventArgs e)
{
    //on récupère la largeur du conteneur principal de notre appli
    double mainGridWidth = MainGrid.ActualWidth;
    //on initialise la position du textBlock (en dehors de la page)
    SongTextBlock.Margin = new Thickness(mainGridWidth, 0, 0, 0);

    timer.Tick += (ss, ee) =>
    {
        if (timer.Interval.Ticks == 300)
        {
            SongTextBlock.Margin = new Thickness(SongTextBlock.Margin.Left - 5, 0, 0, 0);
            if (SongTextBlock.Margin.Left <= -mainGridWidth) SongTextBlock.Margin = new Thickness(mainGridWidth, 0, 0, 0);
        }
    };
    timer.Interval = new TimeSpan(300);
    timer.Start();
}

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

1 个答案:

答案 0 :(得分:0)

您需要的是将TextBlock放在ScrollViewer内,因此可以在时间滴答时滚动文本。

你可以参考我的另一个案例:c# UWP autoscrolling text,在那里我为这个可滚动文本写了一个演示。

这是关于修改ScrollViewerTextBlock的布局的另一个案例,所以它看起来像一个整体:TextBox sizing inside ScrollView with horizontal scroll