none
Como puedo evitar que se abra dos beses un en "StorageFile" al momento de ejecutarlo en C# RRS feed

  • Pregunta

  • Buenas tardes y un cordial saludo, el motivo de mi mensaje es como puedo evitar que se abra dos beses un StorageFile al momento de ejecutarlo, el error se hace visible cuando hago clic en el botón y apesar que no es un botón con doble clic, se abre dos veces el StorageFile para agregar una imagen, cuando en realidad requiero que se abra una vez.

    Este es mi código

    private async void BotonImagen1_Click(object sender, RoutedEventArgs e) { //Condicónes del File Open Picker var picker = new FileOpenPicker(); picker.ViewMode = PickerViewMode.Thumbnail; picker.SuggestedStartLocation = PickerLocationId.PicturesLibrary; picker.FileTypeFilter.Add(".jpg"); picker.FileTypeFilter.Add(".png"); //Creamos un Storage File StorageFile file = await picker.PickSingleFileAsync(); if (file != null) { //Abrir un stream IRandomAccessStream fileStream = await file.OpenAsync(FileAccessMode.Read); //Crear un BitmapImage y Establecer flujo como fuente BitmapImage bitmapImage = new BitmapImage(); bitmapImage.SetSource(fileStream); // Agregamos imagen Imagen1.Source = bitmapImage; VentanaInicio.ReferenciaImagenDeFondo = bitmapImage; VisualizarImagen.Source = bitmapImage; VentanaInicio.LeerDatosDeInicio(); //Desactivamos boton BotonImagen1.IsEnabled = false; //Condición if (CheckBoxBotonImagen1.IsChecked == false) { //Activamos boton BotonImagen2.IsEnabled = true; BotonImagen3.IsEnabled = true; BotonImagen4.IsEnabled = true; BotonImagen5.IsEnabled = true; } }

    }


    Ya provee ejecutar el comando cuando se de solo un clic, pero no funciona, parece que das dos clic, espero puedan apoyarme, saludos 

    miércoles, 3 de abril de 2019 2:15

Respuestas

  • Revisa el sitio donde se conecta el manejador al evento, no vaya a ser que esté conectado dos veces. Es decir, busca si se ejecuta dos veces una línea parecida a esta: BotonImagen1.Click+=BotonImagen1_Click. Una forma fácil de comprobarlo desde Visual Studio es hacer click derecho sobre el nombre del manejador y seleccionar la opción de "buscar todas las referencias".
    miércoles, 3 de abril de 2019 5:58

Todas las respuestas

  • Revisa el sitio donde se conecta el manejador al evento, no vaya a ser que esté conectado dos veces. Es decir, busca si se ejecuta dos veces una línea parecida a esta: BotonImagen1.Click+=BotonImagen1_Click. Una forma fácil de comprobarlo desde Visual Studio es hacer click derecho sobre el nombre del manejador y seleccionar la opción de "buscar todas las referencias".
    miércoles, 3 de abril de 2019 5:58
  • Alberto Poblacion gracias por contestar he revisado lo que me indicaste pero todo se ve bien aunque no el problema sigue, crees que exista una forma de detectar cuando StorageFile esta avierto para que no se ejecute nuevamente

    Saludos

    miércoles, 3 de abril de 2019 23:33