29. maj 2006 - 16:46Der er
11 kommentarer og 1 løsning
Tegne grafik, C#
hej...
Er det muligt at få direkte adgang til grafikken af en Control? Går udfra at det nok vil blive unsafe... Altså det skal være så man direkte kan redigere i de 4 bytes (på 32 bit grafik). Ved man kan gøre det med et bitmap, og derefter tegne det på ens control.
Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
private void button1_Click(object sender, EventArgs e) { Button b = (Button)sender as Button; if(b == null) return;
Graphics g = b.CreateGraphics(); g.DrawLine(Pens.Black, new Point(5, b.Height / 2), new Point(b.Width - 10, b.Height / 2)); }
Så her kan du tegne når du trykker på den, men problemer som jeg ser det, er at der automatisk vil ske er Repaint af din form, så den igen mister den streg som bliver tegner når du trykker på knappen.....
Så du skal nok lave det med bitmap som du selv siger....
ved godt man kan tegne med Graphics og det er jeg også rimelig erfaren i nu, men er ikke det jeg vil... jeg vil have adressen (pointers) til det sted hvor grafikken til mit component ligger og derefter kunne gøre noget lignede dette:
IntPtr p = adresse;
for (int x = 0; x < Width; x++) { for (int y = 0; y < Height; y++) { byte red = p++; byte green = p++; byte blue = p++; }
Du bør override OnPaint eller OnPaintBackground. Derved sikrer du dig at der bliver tegnet på det rigtige tidspunkt, og samtidig har du direkte adgang til dit grafiske object.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.