none
Como atualizar uma imagem RRS feed

  • Pergunta

  • Iniciei um projeto SilverLight que possui 5 imagens e no click de um botão eu queria que fosse apresentado as 5 imagens uma após a outra até chegar a ultima imagem, tentei fazer o seguinte :

     

    private void ExibeImgs() 
    {
     for (int i = 0; i < lstImg.Count; i++)
     {
    	string path = string.Format(@"file:///E:/Projects/Teste/SilverlightApplication1/images/{0}.png", lstImg[i]);
    	image1.Source = new BitmapImage(new Uri(path, UriKind.Absolute));
    	image1.UpdateLayout();
    	System.Threading.Thread.Sleep(100);
     }
    }
    

     

    Mas com este código acima o componente de imagem só exibe a ultima imagem e eu queria que exibisse todas uma após a outra até chegar a ultima. como faz ?

    quarta-feira, 21 de julho de 2010 12:22

Respostas

  • Rick,

    Por questões de segurança o Silverlight não permite que você abra imagens que estão na sua máquina. Isso só está funcionando no seu teste provavelmente por estar em debug. Sugiro que hospede as imagens no servidor, junto com a aplicação e abra elas pela url.

     

    Agora, quando ao seu problema de carregar a imagem: Você definiu um Sleep muito pequeno (100 milisegundos, ou seja 0,1 segundo), por isso só está vendo a última. Seu código está demorando apenas 1/2 segundo para exibir suas 5 imagens. Aumente esse tempo que você vai ter o resultado que espera.


    Atenciosamente,
    Kelps Leite de Sousa
    blog: http://kelps.net
    twitter : http://twitter.com/kelps

    Não se esqueça de "marcar como resposta" o ítem que lhe ajudou.
    quarta-feira, 21 de julho de 2010 14:47
    Moderador

Todas as Respostas

  • Rick,

    Por questões de segurança o Silverlight não permite que você abra imagens que estão na sua máquina. Isso só está funcionando no seu teste provavelmente por estar em debug. Sugiro que hospede as imagens no servidor, junto com a aplicação e abra elas pela url.

     

    Agora, quando ao seu problema de carregar a imagem: Você definiu um Sleep muito pequeno (100 milisegundos, ou seja 0,1 segundo), por isso só está vendo a última. Seu código está demorando apenas 1/2 segundo para exibir suas 5 imagens. Aumente esse tempo que você vai ter o resultado que espera.


    Atenciosamente,
    Kelps Leite de Sousa
    blog: http://kelps.net
    twitter : http://twitter.com/kelps

    Não se esqueça de "marcar como resposta" o ítem que lhe ajudou.
    quarta-feira, 21 de julho de 2010 14:47
    Moderador
  • Coloquei até 1000 e não funcionou , unica coisa que demorou muito mais , mas aparece apenas a ultima imagem
    quarta-feira, 21 de julho de 2010 19:03
  • Sugestão:

    Crie uma storyboard, e no evento completed dela, altere a imagem e dispare a storyboard novamente.

    Esse passo será repetido até que você não queira mais trocar a imagem.

     

     


    Ricardo Dorta
    Arquiteto de Software
    MCP,MCAD,MCSD
    Ajudou? Marque como reposta!!!.
    blog: http://blogs.makesys.com.br/dorta
    twitter : http://twitter.com/dortaway
    quinta-feira, 22 de julho de 2010 14:11
    Moderador
  • Teria como exemplificar utilizando o meu código ?

    é que estou começando agora com o silverlight e não estou familiarizado!

    sexta-feira, 23 de julho de 2010 12:17
  • O Kelps disse : Por questões de segurança o Silverlight não permite que você abra imagens que estão na sua máquina. Isso só está funcionando no seu teste provavelmente por estar em debug. Sugiro que hospede as imagens no servidor, junto com a aplicação e abra elas pela url.

     

    Na verdade eu gostaria de incluir estas imgens dentro do meu projeto como se fossem recursos do projeto para não precisar ficar chamando as imagens de um endereço ... como faço ?

    sexta-feira, 23 de julho de 2010 12:56
  • Rick,

    Não é uma boa prática inserir imagens em seu projeto sl, pois dessa forma aumenta o tamanho do seu arquivo .xap e, consequentemente, o tempo de carga da aplicação.

    Faça como o Ricardo Dorta falou: Crie uma storyboard, e no evento completed dela, altere a imagem e dispare a storyboard novamente.

    Eu fiz dessa maneira e funcionou.


    Forte abraço, Fabriccio. http://fabricciocb.wordpress.com
    sexta-feira, 27 de agosto de 2010 00:47