none
Storyboard não funciona como queria. RRS feed

  • Discussão Geral

  • Olá meus amigos, preciso de uma ajudinha com xaml wpf + c#.

    Seguinte fiz uma animação que eu usaria como se fosse um loading até ai blz, mas quando precisei colocar no código ocorreu que

    ao chamar minha Window que contempla um user control e nele esta minha animação com o metodo  Window.Show() continua processando os códigos abaixo mas a animação não roda!

    E quando eu chamo Window.ShowDialog() a animação roda mas prende a aplicação e os trechos de código abaixo não são execultados!

    É possível chamar minha modal com o método ShowDialog e que o processamento continue?

    Como devo proceder? 

    Obrigado!


    Nome : Romy G. Moura Cargo: Analista Programador

    • Tipo Alterado Marcos SJ sexta-feira, 6 de maio de 2016 10:20 How to
    sexta-feira, 6 de maio de 2016 02:42

Todas as Respostas

  • Olá meus amigos, preciso de uma ajudinha com xaml wpf + c#.

    Seguinte fiz uma animação que eu usaria como se fosse um loading até ai blz, mas quando precisei colocar no código ocorreu que

    ao chamar minha Window que contempla um user control e nele esta minha animação com o metodo  Window.Show() continua processando os códigos abaixo mas a animação não roda!

    E quando eu chamo Window.ShowDialog() a animação roda mas prende a aplicação e os trechos de código abaixo não são execultados!

    É possível chamar minha modal com o método ShowDialog e que o processamento continue?

    Como devo proceder? 

    Obrigado!


    Nome : Romy G. Moura Cargo: Analista Programador

    Pessoal conseguir resolver, caso seja interessante pra mim funciona muito bem

      public delegate void ParameterizedResponseCallBack();
    
    
      #region Back Ground Worker
            public Componentes.Loading.ModalLoading WinMd;
            public ParameterizedResponseCallBack CallBack { get; set; }
            public BackgroundWorker BG_Worker = new BackgroundWorker();
            public Window ObjMain { get; set; }
            public ViewModelBase()
            {
                this.ObjMain = Utilitarios.CarregarConteudo.Instance.PegarMain();
                this.Model = new T();
                BG_Worker.DoWork += new DoWorkEventHandler(BGWorker_DoWork);
                BG_Worker.ProgressChanged += new ProgressChangedEventHandler(BGWorker_ProgressChanged);
                BG_Worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(BGWorker_RunWorkerCompleted);
                BG_Worker.WorkerSupportsCancellation = true;
                BG_Worker.WorkerReportsProgress = true;
            }
    
            void BGWorker_DoWork(object sender, DoWorkEventArgs e)
            {
                if (this.CallBack != null)
                    this.CallBack();
            }
            void BGWorker_ProgressChanged(object sender, ProgressChangedEventArgs e)
            {
    
            }
            void BGWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
            {
                this.FecharModal();
            }
            public void AbrirModal()
            {
                this.WinMd = new Componentes.Loading.ModalLoading();
                this.WinMd.Owner = this.ObjMain;
                this.WinMd.Show();
            }
            public void FecharModal()
            {
                if (this.WinMd != null)
                    this.WinMd.Close();
            }
            #endregion

    Basta colocar em uma classe base, depois chame da seguinte maneira.

     public ICommand EventCliqueContinuar
            {
                get
                {
                    return _eventCliqueContinuar ?? (_eventCliqueContinuar = new Base.ViewModelCommand((e) =>
                    {
                        try
                        {
                            this.AbrirModal();
                            this.CallBack = BtnContinuar_Click;
                            this.BG_Worker.RunWorkerAsync();
                        }
                        catch (Exception)
                        {
                            throw;
                        }
                        //this.BtnContinuar_Click();
                    }));
                }
            }

    Qualquer dúvida é só falar!


    Nome : Romy G. Moura Cargo: Analista Programador

    sexta-feira, 6 de maio de 2016 21:13