Update image whenever a new one is chosen?

Asked

Viewed 102 times

0

I’m using the following code:

private void foto_Completed(object sender, PhotoResult e)
{
    if (e.TaskResult == TaskResult.OK)
    { // se teve sucesso na escolha de uma imagem da galeria
        BitmapImage imagem = new BitmapImage(); // cria uma imagem
        imagem.SetSource(e.ChosenPhoto); // coloca o caminh da imagem escolhida nesse objeto de imagem
        using (IsolatedStorageFile iso = IsolatedStorageFile.GetUserStoreForApplication())
        { // cria um gerenciamento de arquivos
            if (iso.FileExists("bloq.jpg"))
                iso.DeleteFile("bloq.jpg"); // se houver arquivo igual ele apaga
            IsolatedStorageFileStream fs = iso.CreateFile("bloq.jpg"); // cria um novo arquivo
            var bmp1 = new WriteableBitmap(imagem); // escreve a imagem escolhida em uma nova umagem editavel

            Extensions.SaveJpeg(bmp1, fs, 480, 800, 0, 90); // salva imagem
            imagem2.UriSource = new Uri(fs.Name, UriKind.RelativeOrAbsolute); // armazena o caminho da imagem salva em outro objeto de imagem
            fs.Close(); // fecha arquivo
        }
        fot.Source = imagem2; // pega o objeto com a  imagem recem salva e atribui a imagem presente na minha tela
        descricao.Text = "Agora pressione Salvar."; // muda um texto na tela
    }
}

The code only works the first time, example, the user opens the app, goes on the screen and press to choose an image, then he chooses, then he updates the image on the screen, but if the user tries to choose another image, it even replaces the image in the internal storage of the app, but does not update the image on the screen, only when the app is restarted that this is updated.

I want to know if there is error in logic or code, how do I always update the image on the screen? Regardless of how many times the user changes the image

1 answer

0

Instead of using the Image path use the bitmap you receive to set the image.

private void foto_Completed(object sender, PhotoResult e)
    {
        if (e.TaskResult == TaskResult.OK)
        { 
            // se teve sucesso na escolha de uma imagem da galeria
            var bmp = new BitmapImage();

            bmp.SetSource(e.ChosenPhoto);

            Img.Source = bmp;
        }
    }
  • 1

    Can you add an example to the answer? So it becomes more complete and will serve as a reference not only to the question creator.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.