none
Scrollviewer infinito [C# - WPF] RRS feed

  • Pregunta

  • Hola a todos.

    Queria saber si hay algun tipo de control o de configuracion en el scrollviewer para hacer que al llegar al final del contenido dentro de él, vuelva al principio.

    Por ejemplo, si dentro del scrollviewer tengo un grid con varios controles me gustaria que al llegar al final de ese grid mediante el scroll vuelva al principio del grid de nuevo, es decir que sea circular.

    Un saludo

    • Cambiado Alberto PoblacionMVP viernes, 17 de junio de 2016 10:54 Trasladada al foro de WPF porque realmente la pregunta no depende del lenguaje (C#) sino que es más bien sobre el control de WPF.
    viernes, 17 de junio de 2016 8:03

Todas las respuestas

  • Hola Jk_rod, se me ocurre rápidamente algo así:

    //Instancias el manejador de eventos
    scrollViewer.ScrollChanged += OnScrollChanged;
    
    //Verificas si llegó al final y le haces volver al principio
    private void OnScrollChanged(object sender, ScrollChangedEventArgs e)
    {
        var scrollViewer = (ScrollViewer)sender;
        if (scrollViewer.VerticalOffset == scrollViewer.ScrollableHeight)
        {
            //Esto haría volver al principio
            scrollViewer.ScrollToVerticalOffset(0);
        }       
    }

    No recuerdo alguna función para hacer automático esto, creo que no la hay.

    Saludos


    Christian Amado
    Software Engineer | MCPD: Windows Phone Developer | MCTS: Silverlight Developer
    Don't forget to mark the right answer and vote up if helps you.
    My Blog
    My code samples

    viernes, 17 de junio de 2016 13:23
  • Hola christian gracias por responder. 

    Eso no es lo que busco por que al llegar al final vuelve al principio pero entonces dejo de ver el final, no se si me explico. Lo que busco es algo "circular", es decir que al llegar al final del scrollview se muestre pegado al ultimo item el primero.

    lunes, 20 de junio de 2016 8:11