[C#] lokatie bitmap opvragen

Pagina: 1
Acties:

  • rvtk
  • Registratie: Juni 2001
  • Laatst online: 03-02 20:19
Ik heb een simpele From waarin ik mbv GDI een graphics object myGraphics maak. Hierin laadt ik dan een bitmap genaamd mybitmap. Dit werkt prima, ik krijg een mooi plaatje op mijn scherm.

Vervolgens wil ik als ik met mijn muis hierover beweeg, netjes de coordinaten in een textboxje zien. Dit lukt niet helemaal goed. Ik krijg de afstanden in X,Y te zien vanaf het begin van de Form. Ik heb al suf gezocht op MSDN, maar ik heb dus ergens de positie nodig van de linkerbovenhoek van de bitmap, iemand enig idee hoe ik deze tevoorschijn kan toveren.

code:
1
2
3
4
5
6
7
8
9
Graphics g = this.CreateGraphics();
g.Clear(this.BackColor);
Bitmap curBitmap = new Bitmap(@"Multifilm.bmp");
this.MouseMove += new System.Windows.Forms.MouseEventHandler(this.MouseMove_Move);

private void MouseMove_Move(object sender, System.EventArgs e)
  {
    textBox1.Text = this.Location.X.ToString();
  }

  • Infinitive
  • Registratie: Maart 2001
  • Laatst online: 25-09-2023
Ik leid uit je verhaal af dat je de bitmap in een bepaald child component of het form hebt geplaatst. Ik neem aan in de linkerbovenhoek. Het enige wat je nu hoeft te doen is de locatie van het child component af te halen van je form locatie.

Alternatief: ik weet niet 100% zeker wat het coordinatenstelsel is van de locatie in je event (maar dat kan je in de handleiding wel vinden), maar ik denk dat als je de event handler op dat child component gooit, je ofwel direct de coordinaten in het stelsel dat je wilt hebben krijgt, of er is ergens wel een transformatiefunctie.

Ik zou zeggen, browse nog eventjes door in de C# documentatie. Ik denk dat je daar wel kunt vinden wat je zoekt. :)

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]


  • rvtk
  • Registratie: Juni 2001
  • Laatst online: 03-02 20:19
Na wat zoekwerk op codeproject is het mij idd gelukt om de bitmap netjes in een panel te plaatsen. Van de panel kan ik de locatie opvragen. Oftewel, problem solved :)