¿Cómo mostrar un gif en WPF?

publicado por: Anonymous

Tengo una aplicación desarrollada en C# en la cual, existe un botón de sincronización, este sincroniza los datos entre el servidor local y el remoto. La acción tarda un minuto en promedio y quisiera mostrar un gif con la leyenda de “sincronizando”. He intentado de varias formas pero ni una me ha servido. Agradezco su ayuda

solución

Puedes ayudarte de este proyecto, antes se encontraba en Codeplex, pero ya migraron a Github WpfAnimatedGif

Instalación via Nuget:

Install-Package WpfAnimatedGif

Uso:
Importa el namespace

xmlns:gif="http://wpfanimatedgif.codeplex.com"

Y usa el tag Image con el atributo gif

<Image gif:ImageBehavior.AnimatedSource="migif.gif" />

EDIT

Basado en tu comentario

Deberias usar BackgroundWorker (u otra forma asincrona), para invocar tu proceso, ya que tu pantalla parece que se “congela” debido que tu proceso se esta ejecutando en el hilo de la vista

Ejemplo:

    private BackgroundWorker worker;        

    private BackgroundWorker GetWorker()
    {
        BackgroundWorker worker = new BackgroundWorker();
        worker.DoWork += new DoWorkEventHandler(worker_DoWork);
        worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(worker_RunWorkerCompleted);

        worker.RunWorkerAsync();

        return worker;
    }

    void worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
    {
        //aqui acabamos
    }

    void worker_DoWork(object sender, DoWorkEventArgs e)
    {
        //ejecuta tu proceso
    }
Respondido por: Anonymous

Leave a Reply

Your email address will not be published.