Principales respuestas
Problemas con la propiedad TranslateTransform

Pregunta
-
Tengo un inconveniente con esta propiedad. Tengo entendido que la propiedad antes mencionada designa un punto en el plano cartesiano(x,y) para ubicar un objeto...en este caso quisiera ubicar una imagen que esta dentro de un Canvas,pero no funciona...
Este es el codigo:
aleatorio = new Random(); Mover = new TranslateTransform(1366,aleatorio.Next (1,430)); this.Pato.RenderTransform = Mover;
Bueno, en este caso quiero que en el eje de la "X" aparezca en el extremo izquierdo de mi pantalla, y por eso le puse 1366; que es el ancho de mi pantalla;y en el eje de la "Y" quiero que aparezca de una posición aleatoria,por eso puse un "random", pero dentro de un rango(1-430)....
Agradezco su ayuda de antemano...
Respuestas
-
Si está dentro de un Canvas, simplemente asígnale el Canvas.Left y Canvas.Top:
Pato.SetValue(Canvas.LeftProperty, 1366d);
Ojo con el "1366". Si esa es la anchura de la pantalla y se lo asignas al "Left" del objeto, el objeto quedará justo "fuera" de la pantalla por el borde derecho. Si quieres que quede pegado al borde, tendrás que restar la anchura del objeto del 1366.
- Marcado como respuesta Leonardo Quispe Morales martes, 11 de noviembre de 2014 13:11
Todas las respuestas
-
No, el TranslateTransform no designa un punto en el Canvas. Designa la DIFERENCIA respecto a la ubicación anterior del objeto. Esto significa que si le pones 1366 en la X, lo que hace es desplazar el objeto 1366 píxels hacia la derecha respecto a la ubicación en la que se encontraba originalmente.
-
-
Si está dentro de un Canvas, simplemente asígnale el Canvas.Left y Canvas.Top:
Pato.SetValue(Canvas.LeftProperty, 1366d);
Ojo con el "1366". Si esa es la anchura de la pantalla y se lo asignas al "Left" del objeto, el objeto quedará justo "fuera" de la pantalla por el borde derecho. Si quieres que quede pegado al borde, tendrás que restar la anchura del objeto del 1366.
- Marcado como respuesta Leonardo Quispe Morales martes, 11 de noviembre de 2014 13:11
-
-
Hola nuevamente....He seguido sus consejos para darle un punto de inicio a mi animacion....cuando le doy esta propiedad al eje de la X(left) no tengo problemas, el problema esta en el eje de la Y(top),porque quiero asignarle un valor randómico, no me sale errores, pero al momento de correr el programa me sale que mi variable randómica no es de tipo Int...ayuda por favor!!!!!
ahi le dejo el codigo
aleatorio = new Random(); Pato.SetValue(Canvas.LeftProperty,SystemParameters.PrimaryScreenWidth -Pato.Width ); Pato.SetValue(Canvas.TopProperty, aleatorio.Next(1, 430).ToString());
Agradezco su ayuda de antemano.
leonardito17
-