2016-08-24 62 views
-1

我正在使用C#和xaml中的UWP應用程序,我想要顯示無限連續文本滾動(同一文本連續滾動而沒有任何空白)。UWP TextBlock使用定時器(c#xaml)無限滾動

我首先嚐試在scrollviewer中嵌入文本塊,但是當文本通過網格時,它會從頭開始,所以有一個空白。

所以我試着用定時器滾動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

目前還不清楚你在問什麼。請更具體一些。提供一個好的[mcve]。現在解釋_precisely_該代碼的作用,以及您希望它做什麼。 –

+0

[c#UWP autoscrolling text]可能的重複(http://stackoverflow.com/questions/38433555/c-sharp-uwp-autoscrolling-text) – ZORRO

+0

嗨,對不起,沒有清楚,英語不是我的第一語言。 我編輯我的原始文章是更具體。 在發佈之前,我嘗試了c#UWP自動滾動文本解決方案,但它不是我想要做的,因爲當文本滾動並且再次滾動之前有空白。 – Acidy

回答

0

你需要的是把你的TextBlock一個ScrollViewer內,這樣才能使文本時滾動時間滴答。

你可以參考我的另一個案例:c# UWP autoscrolling text,那裏我寫了這個可滾動文本的演示。

這裏是另一個關於修改ScrollViewerTextBlock的佈局的例子,它看起來像一個整體:TextBox sizing inside ScrollView with horizontal scroll

+0

嗨,感謝您的回覆,但正如我上面所說的,我已經嘗試了這種解決方案,並不完全是我想要做的。 – Acidy