none
Movimiento de un botón en un Canvas RRS feed

  • Pregunta

  • He estado leyendo "Todo sobre el canvas" de este foro y me he decidido a hacer una prueba consistente en mover un botón, construido mediante c#, mediante otros botones (izda, derecha, arriba y abajo).

    La construcción del boton y su situación en el canvas, correcto.

    Al intentar mover el boton (al pulsar el botón izquierdo) me da un error porque el boton "movil" tiene el valor null.

    Sin embargo, el boton "movil" le he definido como privado en la clase "Window1", pero no puedo acceder a él desde el procedimiento

    button1_Click.

    He intentado acceder al boton movil desde Window1.canvas1...

    No se. Hay algo que se me escapa...

    Muchas gracias

    José Luis

    A continuación agrego el código...

     

     

    using

    System.Windows.Media;

    using

    System.Windows.Media.Imaging;

    using

    System.Windows.Navigation;

    using

    System.Windows.Shapes;

    namespace

    anima001

    {

     

     

    public partial class Window1 : Window

     

    {

     

    private double left = 100.0;

     

    private double top = 100.0;

     

    private Button movil = null;

     

    public Window1()

    {

    InitializeComponent();

    inicio();

    }

     

    private void inicio()

    {

     

    Button movil = new Button();

    movil.Content =

    "m¢vil";

    canvas1.Children.Add(movil);

     

     

    // establecer posici¢n de inicio
     

    movil.SetValue(

    Canvas.LeftProperty, left);

    movil.SetValue(

    Canvas.TopProperty, top);

    }

     

     

    private void button1_Click(object sender, RoutedEventArgs e)

    {

     

     

    left = (

    double)movil.GetValue(Canvas.LeftProperty);

    top = (

    double)movil.GetValue(Canvas.TopProperty);

    left++;

    movil.SetValue(

    Canvas.LeftProperty, left);

    movil.SetValue(

    Canvas.TopProperty, top);

    }

    }

    }


    Atentamente José Luis Torre
    miércoles, 9 de noviembre de 2011 10:24

Respuestas

  • Hola José Luis

    Al tu hacer esto:

    Button movil = new Button();
    

    Estas creando un nuevo Botón y no estas usando el que has declarado antes.

    Tienes 2 opciones para corregir esto:

    1. 

    movil = new Button();
    

    2.

    this.movil = new Button();
    

    Saludos


    Antonio Lobo
    Para el correcto funcionamiento, y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
    Si la respuesta te ha sido util Votala.
    Mi blog
    • Propuesto como respuesta David_González miércoles, 9 de noviembre de 2011 20:43
    • Marcado como respuesta José Luis Torre jueves, 22 de diciembre de 2011 18:21
    miércoles, 9 de noviembre de 2011 18:05