Ayuda con Panorama item y Button

Para dar las gracias debes entrar o registrarte en el foro

Miembro ocasional
Miembro ocasional
Mensajes: 33 Agradecido: 0
22 Mar 2014, 21:41# 11

Seria que cada panoramaItem ya esta creado, y cada uno tiene un botón donde llama un selector de imagen y la muestra en el componente imagen del panoramaItem correspondiente.
El tema es que solo el primer botón panorama item tenga el evento del click, y luego el segundo panoramaItem habilite el evento click si se ha cargado la primer imagen en el panorama item y así sucesivamente. Así se van seleccionando progresivamente las imágenes en cada panoramaItem.
Igualmente con lo que me has dicho del Pano.SelectedIndex me has ayudado mucho (^.^) Ahora veré como me queda mejor lo demas, gracias.

Gracias  
Etiquetado en:
Miembro ocasional
Miembro ocasional
Mensajes: 33 Agradecido: 0
24 Mar 2014, 17:35# 12

Ya lo solucioone, muchas gracias por tu ayuda! :)

Panorama.xaml.cs

private void btnGal_Click(object sender, EventArgs e)
{
PhotoChooserTask photoChooserTask;
photoChooserTask = new PhotoChooserTask();
photoChooserTask.Completed += new EventHandler(photoChooserTask_Completed1);
try
{
photoChooserTask.Show();
}
catch (System.InvalidOperationException ex)
{
MessageBox.Show("An error occurred."+ ex);
}

}
void photoChooserTask_Completed1(object sender, PhotoResult e)
{



if (e.TaskResult == TaskResult.OK)
{


//Code to display the photo on the page in an image control named myImageL.
System.Windows.Media.Imaging.BitmapImage bmp = new System.Windows.Media.Imaging.BitmapImage();
bmp.SetSource(e.ChosenPhoto);

if (PanoControl.SelectedIndex == 0) {
img = myImageL;

}

else if (PanoControl.SelectedIndex == 1)
{
//Habilita el boton crear luego de cargar dos imagenes
ApplicationBarIconButton appCrear = (ApplicationBarIconButton)ApplicationBar.Buttons[0];
appCrear.IsEnabled = true;
btnImagen3.Click += btnGal_Click;
img = myImage2;
}

else if (PanoControl.SelectedIndex == 2)
{
btnImagen4.Click += btnGal_Click;
img = myImage3;

}
else if (PanoControl.SelectedIndex == 3) {
btnImagenR.Click += btnGal_Click;
img = myImage4;
}
else if (PanoControl.SelectedIndex == 4) img = myImageR;



img.Source = bmp;



}


PanoramaPag.xaml


















Gracias  
Moderador
Moderador
Mensajes: 637 Agradecido: 22
26 Mar 2014, 01:08# 13

Mmm tener dibujados los panorama ítem siempre no consumirá mucho recurso en tiempo de ejecución?

The fire was always burning!

Gracias  
Administrador
Administrador
Mensajes: 826 Agradecido: 119
26 Mar 2014, 01:31# 14

Una pequeña corrección: deberías buscar una forma de controlar la captura de eventos, si no se te van a acumular. Tal como lo tienes ahora, si aceptas más de una vez cada imagen, estás aumentando la pila de manejadores. Para arreglarlo, sin tener que definir campos, puedes usar la propiedad Tag de los botones. Yo cambiaría:
btnImagen3.Click += btnGal_Click;
Por:
if(btnImagen3.Tag == null)
{
btnImagen3.Click += btnGal_Click;
btnImagen3.Tag = true;
}

Sustituye esto en todos los botones que captures el evento.
Con esto te asegurarías que capturas el evento solo una vez, aunque aceptes varias veces una imagen.

Enviado desde mi LG-V510 mediante Tapatalk

Gracias  
1 persona ha dado las gracias: candyvf
Miembro ocasional
Miembro ocasional
Mensajes: 33 Agradecido: 0
26 Mar 2014, 03:02# 15

Davdi, gracias por el consejo voy a tratar de probar lo que me sugeriste. Igualmente yo tengo un botón en el applicationBar que resetea todas las imágenes y los manejadores de eventos de los botones.
Me podrías explicar de paso que es lo hace .Tag?¿

dbahamondes, he pensado también ir dibujando los panoramaItem a medida que se van agregando las imágenes. Como me estoy inicializando en WP8 estoy tratando de curiosear y ir haciendo a medida que se me ocurren cosas. Gracias por tu observación lo voy a tener en cuenta. :)

Gracias  
Administrador
Administrador
Mensajes: 826 Agradecido: 119
26 Mar 2014, 09:27# 16

Si vas a hacerlo como te sugiero, tienes que poner en el botón del ApplicationBar que resetea, además de lo que tienes hecho, igualar a null cada Tag de cada botón, si no los if no entrarían.

Tag es una propiedad que tienen si no todos la gran mayoría de controles. Es de tipo object, por lo que puede almacenar cualquier cosa en ella, aunque lo suyo es que lo que almacene esté relacionado con el control. Es una propiedad comodín se podría decir.

Aquí tienes la documentación oficial de Tag.

Enviado desde mi LG-V510 mediante Tapatalk

Gracias  