¿Cómo hacer un teletipo vertical en Silverlight?

Tengo una lista de elementos que quiero desplazar lentamente verticalmente hasta que el mouse se desplace sobre la lista de elementos. Luego, aparecerá una barra de desplazamiento. La parte en la que estoy atascado es la mejor manera de tener el efecto de que la lista se repita constantemente. Así que si tienes:

-----
A
B
C
D
E
-----

se desplazará y se verá algo como esto:

----
D
E
A
B
C
----

¿Hay alguna manera de hacer esto sin tener dos colecciones?

preguntado el 12 de junio de 12 a las 17:06

¿Quizás algo como esto te ayudará? selector de bucle wp7 -

1 Respuestas

Podrías hacer algo como esto:

    ObservableCollection<string> myList;
    public MainPage()
    {
        InitializeComponent();
        myList = new ObservableCollection<string>();
        myList.Add("A");
        myList.Add("B");
        myList.Add("C");
        myList.Add("D");
        myList.Add("E");

        System.Threading.Timer t = new System.Threading.Timer(new System.Threading.TimerCallback(TimerFired));
        t.Change(500, 500);

        listBox2.ItemsSource = myList ;          
    }

    private void TimerFired(object sender)
    {
        Pop();
    }
    private delegate void PopDelegate();
    private void Pop()
    {
        if (this.Dispatcher.CheckAccess())
        {
            string item = myList[myList.Count - 1];
            myList.RemoveAt(myList.Count - 1);
            myList.Insert(0, item);

        }
        else
        {
            this.Dispatcher.BeginInvoke(new PopDelegate(Pop), null);
        }
    }

Respondido el 12 de junio de 12 a las 18:06

Idea interesante. Mirando su código, en lugar de desplazarse, simplemente está reordenando la lista esencialmente. Sin embargo, estoy tratando de hacer un movimiento de desplazamiento más fluido. Gracias, sin embargo. - Justin

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.