» »

[C#, .net] zamikanje slike

[C#, .net] zamikanje slike

atasmrk ::

Pozdrav

Ukvarjam se z risanjem direktno na kontrolo. V Bitmap objektu offscreenBitmap imam sliko, Graphics objekt offscreenGraphics pa je narejen iz tega bitmapa. Delujeta pa kot backbuffer, na sliko nekaj narisem in jo potem prikazem. Overridal sem OnPaint metodo
protected override void OnPaint(PaintEventArgs e)
{
  e.Graphics.DrawImage(this.m_offscreenBitmap, 0, 0);
}

Potem pa hocem sliko zamakniti za par pikslov. V ta namen v OnPaint metodo dodam spodnjo vrstico.
this.m_offscreenGraphics.DrawImage(this.m_offscreenBitmap, 11, 0);

Vendar stvar ne spila. Nic se ne zgodi. Kaj sem zgresil?

atasmrk ::

Se dopolnilo.

Ce pa offscreenGraphics objektu pripnem matriko za translacijo
Matrix m = new Matrix();
m.Translate(11,0);                  //translacija za 11 pikslov v desno
offscreenDrawing.Transform = m;
m.Dispose();                        //to lahko naredim, ker se v graphics objektu naredi kopija m-ja

pa slika se zamakne, ampak samo enkrat. Ce klicem DrawImage veckrat, je slika zamaknjena samo enkrat.

vojko20 ::

Mogoče zaradi tega ker vsakič na novo ustvariš Matrix (m) objekt. Probaj to dat v kakšen form create event recimo.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[c#] ukaz radirka

Oddelek: Programiranje
91122 (915) japol
»

C# - Flickering na paintbox kontroli

Oddelek: Programiranje
5689 (542) Monster
»

[C++] izris v [x,y]

Oddelek: Programiranje
131179 (881) DuleKrtola
»

[c#]4 v vrsto - padanje krogov

Oddelek: Programiranje
81999 (1831) VASkO
»

[c#] enostavna Igrca -> poraba procesorja 95%

Oddelek: Programiranje
192168 (1532) elKaktus

Več podobnih tem