none
Ajuda Splash Screen WPF C#? RRS feed

  • Pergunta

  • Boa tarde pessoal. Fiz um programa e coloquei uma tela de carregamento e tá funcionando perfeitamente no C#, mas quando eu fui colocar esse mesmo código no WPF C# deu vários erros, mudei por causa personalização a mais nos programas criados nele, segue o código abaixo que utilizo no C#

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace AlphA { public partial class AlphA : Form { public AlphA() { InitializeComponent(); EfeitoTelaInicial(); } private void EfeitoTelaInicial() { Timer Tempo1 = new Timer(); float opacity = 0; Opacity = opacity; Tempo1.Interval = 30; Tempo1.Start(); Tempo1.Tick += delegate { this.Opacity = ++opacity / 100; if (opacity >= 100) { Tempo1.Stop(); TextosDaTelaInicial(); } }; } private void TextosDaTelaInicial() { Timer Tempo2 = new Timer(); int valor = 0; Tempo2.Interval = 50; Tempo2.Start(); Tempo2.Tick += delegate { if (valor == 0) {

    label.text = "Iniciando o programa...";

    } else if (valor == 10) { label.text = "Verificando os componentes..."; } else if (valor == 20) { label.text = "Verificando o ambiente..."; } else if (valor == 30) { label.text = "Verificando a internet..."; } else if (valor == 40) { label.text = "Concluindo..."; } else if (valor == 50) { label.text = "Aguarde..."; } else if (valor >= 60) { Tempo2.Stop(); Application.Exit(); } valor++; }; } } }

    O que eu tenho que modificar no código para que ele funcione no WPF C#?

    Obs: Se algum de vocês souberem de outro código que funciona com esses mesmos princípios só que melhor e mais eficiente, pode me passar também.

    Fico no aguardo. Abraços a todos!






    terça-feira, 18 de novembro de 2014 17:45

Todas as Respostas

  • Olá,

    WPF é bem diferente do Win Forms. WPF e Win Forms são como ser fossem dois idiomas, Inglês e Português, respectivamente. Você não traduz literalmente de um pro outro, você traduz uma ideia. Só um exemplo ainda da parte das línguas: Se alguém espirra, no Brasil a gente fala Saúde!! Em inglês é God Bless You!! (Deus abençoe você). Se você traduzir literalmente seria Health(Saúde, mas essa palavra se refere ao ponto de vista físico). Agora para e pensa: o quão diferente é de uma língua pra outra, então você tem que começar a tentar traduzir a ideia e não o código literalmente, vai ser algo bem mais fácil...

    Voltando á programação, o que você quer fazer exatamente? Pode postar uma imagem do resultado obtido no Win Forms, por favor?


    Herbert Lausmann

    quarta-feira, 19 de novembro de 2014 10:18
  • Boa tarde Herbert Lausmann,

    No método EfeitoTelaInicial();

    Ele serve pra quando iniciar o programa ele inicie com a Opacity = 0% a 100%  e logo depois ele inicia o segundo método.

    TextosDaTelaInicial();

    Aqui ele mostra vários textos numa Label, com um determinado tempo entre uma e outra.

    E por ultimo ele fecha a janela do carregamento do programa e inicia a tela principal.

    É exatamente esse resultado que quero se possível, ser feito no WPF C# ?

    Fico no aguardo. Abraços!


    quarta-feira, 19 de novembro de 2014 16:21
  • Criei um projeto de uma Splash Screen e disponibilizei no meu blog. Provavelmente você terá que fazer algumas modificações para se adequar ao que você precisa, mas o conceito permanece o mesmo:

    WPF Splash Screen | Herbert.Lausmann

    Espero ter ajudado.

    PS.: Sempre evito redirecionar as dúvidas do Fórum para outros meios de comunicação, como Facebook e etc. Porém nesse caso julguei que seria melhor, pois o WPF é divido em View (XAML) e Code Behind (C# ou VB.NET) o que iria acarretar em vários e vários trechos de código diferentes para inserir aqui. Sendo assim, não conseguiria fornecer uma resposta de qualidade apenas colando os códigos do Splash Screen, já que a criação do mesmo exige alterações em vários arquivos de códigos. Portanto, resolvi disponibilizar o projeto completo no link informado.


    Herbert Lausmann

    quarta-feira, 19 de novembro de 2014 19:18
  • Caro Herbert Lausmann, 

    Baixei e fiz algumas modificações, coloquei outros textos e até ai tudo bem, mas não me agradou muito.

    Queria se possível ser igual eu falei: Ele iniciaria com a Opacity de 0 a 100% e depois disso ele mostraria aqueles textos no LblStatus (label). Como na imagem abaixo!

    Como mostra o texto "Verificando os componentes" ele mostraria os textos que te mostrei acima.

    "Não se preocupe com o XML o design dele e como na imagem acima, o que preciso agora e do código mesmo."

    Seria de grande, grandessíssima ajuda se me ajuda-se nessa parte de mostrar vários textos no LblStatus com um tempo de um segundo pra cada frase e depois ele fecharia essa janela e abriria a principal como no seu programa que baixei.

    Alguém por favor me ajuda. Ficarei eternamente grato por isso.

    Fico no aguardo. Abraços!




    quarta-feira, 19 de novembro de 2014 21:45