Texte défilant automatiquement c # UWP

Je suis en train de créer une application pour Raspberry Pi (Windows IoT) qui accepte les messages UDP et les affiche à l’écran.

J’ai besoin d’un moyen de faire défiler le texte horizontalement sur l’écran automatiquement. Je ne peux pas laisser l’utilisateur cliquer sur un bouton car aucun périphérique d’entrée n’est connecté au Pi.
Jusqu’ici, j’ai joué avec un scrollviewer et ajusté sa valeur HorizontalAlignment manuellement, mais sans résultat (je suis un peu nouveau dans le domaine UWP / XAML).

Quelqu’un peut-il me montrer du code qui ferait défiler automatiquement le texte du bloc de texte de droite à gauche (comme dans le cas du texte défilant sur les écrans numériques) qui n’interrompait aucun autre code exécuté dans l’application (réception de messages udp et cochant la timer)?

Merci d’avance.

Vous pouvez définir le TextBlock intérieur d’un ScrollViewer pour pouvoir le faire défiler par exemple comme ceci:

    

Et dans le code derrière utilisez un DispatcherTimer pour définir une timer pour le défilement, dans l’ Loaded event de ScrollViewer démarrez cette timer et dans l’ Unloaded event ScrollViewer arrêtez-la:

 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(); } 

Remarqué que votre application est pour Raspberry Pi, je viens de tester ce code sur RP2, version OS 10.0.14376.0, cela fonctionne bien.

Voir ce post: Zone de texte multiligne avec défilement vertical automatique

Remplacez le TextBlock par un TextBox en lecture seule, pour pouvoir faire défiler par programme jusqu’à la fin à chaque mise à jour de son contenu.