我正在使用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();
}
答案 0 :(得分:0)
您需要的是将TextBlock
放在ScrollViewer
内,因此可以在时间滴答时滚动文本。
你可以参考我的另一个案例:c# UWP autoscrolling text,在那里我为这个可滚动文本写了一个演示。
这是关于修改ScrollViewer
和TextBlock
的布局的另一个案例,所以它看起来像一个整体:TextBox sizing inside ScrollView with horizontal scroll。