none
simular una barra de progreso mientras se ejecuta una consulta en la base de datos

    Question

  • buenas amigos tengo días intentando de todo para lograr simular una barra de progreso mientras se realiza una consulta en una base de datos, 

    en general quiero que al presionar el botón de consulta se muestre la barra de progreso con una animación de unos 4 segundos al terminar esos 4 segundos se cierre la barra de progreso y se carguen los datos en el listview que ya fueron procesados en la consulta ejecutada estoy trabajando en wpf con lenguaje c#...

    les dejo una imagen de lo que tengo hasta el momento 

    como verán aqui tengo un control personalizado y el slider cuando ejecuto la aplicación oculto el control luego lo hago visible en el evento clik con esta animación 

     slider.Value = 0;
                Duration duration = new Duration(TimeSpan.FromSeconds(5));
                DoubleAnimation doubleanimation = new DoubleAnimation(350.0, duration);
                slider.BeginAnimation(ProgressBar.ValueProperty, doubleanimation);

    el problema es que no se como lograr que se ejecute la animación y en segundo plano la consulta de la base de datos y cuando termine la animación se carguen los datos en el listview de la consulta 


    brahman

    Thursday, August 30, 2012 7:58 PM

All replies

  • pues hombre usa el progressbar, creo q es un control de silverlight toolkit, y es facil de usar, es una barra de progreso ciclica, (asi como un gif en html), espero te sirva

    "La imaginacion es mas importante que el conocimiento." -> Albert Einstein

    • Proposed as answer by gblumen Wednesday, September 12, 2012 7:30 PM
    Wednesday, September 12, 2012 7:27 PM
  • Usa esto viejo

    En tu .cs pon

      Storyboard _timer = new Storyboard();

    Aquí le dices que al terminar el tiempo se olculte

       void _timer_Completed(object sender, EventArgs e)
            {
                if (MyProgress.Value < MyProgress.Maximum)
                {
                    MyProgress.Value++;
                    _timer.Begin();
                }
    
                else
                {
                    MyProgress.Visibility = Visibility.Collapsed;
                    MyProgress.Value = 0;
                }
            }
    

    Esta función ejecuta la barra

       void barra()
            {
                MyProgress.Visibility = Visibility.Visible;
                _timer.Duration = TimeSpan.FromMilliseconds(5);
                _timer.Completed += new EventHandler(_timer_Completed);
                _timer.Begin();
            }

    Y barra(); la pones en el evento que quieres que cargue la barra, por ejemplo el evento click de algún control.

    Y esta es la barra:

    <ProgressBar Name="MyProgress" Foreground="#0033FF" Background="White" Value="10" Maximum="100" Width="100" Height="10" Visibility="Collapsed"/>

    Y esta la encuentras en el toolkit

    Espero haber ayudado. 

    • Proposed as answer by SamuelMX Thursday, September 20, 2012 5:01 PM
    Tuesday, September 18, 2012 6:09 PM