Jak ustawić element w środku obiektu

0

Witam mam pewne pytanko ponieważ narysowałem pewna siatkę (która jest widoczna na zdjęciu) i mam teraz pewne pytanko co zrobić żeby obiekt który zostanie stworzony w tej siatce ustawiał się zawsze w środku kwadratu ? Czy takie coś jest możliwe na tym co teraz mam czy możne jakoś inaczej to poustawiać a jeżeli tak to jak ?

0

X = siatka.Width/2 - obiekt.width/2
Y = siatka.Height/2 - obiekt.Height/2

0

Dziękuję ale ja raczej chciał bym zrobić takie coś ze będę mógł te elementy przesuwać swobodnie po siatce a po przeniesieniu obiektu na dany kwadrat będzie się automatycznie przenosić na środek

0

Jeżeli chodzi o siatkę to nie jest ona ze zdj czy coś tylko jest ona zrobiona w kodzie

        private void panel1_Paint(object sender, PaintEventArgs e)
        {
            Pen p = new Pen(Color.Black);

            for (int y = 0; y < panel1.Width; y += 100)
            {
                e.Graphics.DrawLine(p, 0, y, panel1.Width, y);
            }

            for (int x = 0; x < panel1.Width; x += 100)
            {
                e.Graphics.DrawLine(p, x, panel1.Height, x, 0);
            }
        }

jeżeli chodzi o Przyciski to zrobiłem to tak żeby te przyciski mogły się przesuwać

        private void dodajToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Button b = new Button();

            Console.WriteLine("{0},{1}",x,y);

            b.Text = "dsadas";
            b.MouseDown += (s, eb) =>
            {
                if (eb.Button == MouseButtons.Left)
                {
                    px = eb.X;
                    py = eb.Y;
                }
            };
            b.MouseMove += (s, me) =>
            {
                if (me.Button == MouseButtons.Left)
                {
                    b.Left += me.X - px;
                    b.Top += me.Y - py;
                }
            };
            panel1.Controls.Add(b);
            
        }

i chce to zrobić tak ze jeżeli ten przycisk który utworze pojawi się w tym kwadracie to automatycznie przeniesie się na środek tego kwadratu a jak go przesunę w prawo czy lewo to przeniesie się na środek innego kwadratu

1

Plansza z kostkami N * M. Każda kostka ma szerokość W.
Aby otrzymać środek kostki Cubes[K,R] należy:

	xLocation = K * W + (W/2);
	yLocation = R * W + (W/2);

Teraz jeśli środek przycisku P o wymiarach J * H ma być w lokalizacji xLocation,yLocation to rysujesz go w:

	xLocation - (P.J/2)
	yLocation - (P.H/2)

1 użytkowników online, w tym zalogowanych: 0, gości: 1