| | |
| Stránka: 1 z 1
| [ Príspevkov: 3 ] | |
Autor | Správa |
---|
Registrovaný: 03.05.08 Prihlásený: 20.06.12 Príspevky: 8 Témy: 2 Bydlisko: LC | Napísal cccp14: 14.04.2010 0:05 | |
|
1. problem
ako prekreslim na pictureboxe jeho image?
Kód: public void ShowStep(Form pForm, int pStep) { Bitmap bmp = new Bitmap(19, 25); Graphics g = pbStep.CreateGraphics(); //Graphics g = Graphics.FromImage(bmp); pbStep.Image = bmp; g.DrawString(pStep.ToString(), new Font("Arial", 17), new SolidBrush(Color.Snow), new Point(0, 0)); //prekreslenie stepu }
prve nakreslenie je vpohode, lenze ked kreslim druhykrat, tak sa mi to len prekresluje jedno cez druhe, tj prvy string mi nezmizne nech to robim takto alebo aj tym zakomentovanym sposobom poznamka: BackColor je nastavene na transparent 2. problem kedze picturebox nepodporuje priehladnost (to co je u neho prihladnost je nieco moc divne, pretoze to len prekresluje pixely svojho parenta na seba ), vytvoril som si podla navodov z webu vlastny picturebox: Kód: public class MyPB : Control { private Image _image;
public MyPB() { SetStyle(ControlStyles.SupportsTransparentBackColor, true); SetStyle(ControlStyles.Opaque, true); BackColor = Color.Transparent; }
protected override CreateParams CreateParams { get { CreateParams cp = base.CreateParams; cp.ExStyle |= 0x20; return cp; } }
protected override void OnPaint(PaintEventArgs e) { if (Image != null) { e.Graphics.DrawImage(_image, 0, 0, _image.Width, _image.Height); } }
protected override void OnPaintBackground(PaintEventArgs e) { //Do not paint background }
public Image Image { get { return _image; } set { _image = value; } } }
toto uz sa da potom nazvat prihladnost (prave vdaka metode createParameters) lenze ked mi moj picturebox zmeni polohu na forme, pozadie toho _image si nejak zabudol updatnut a ma ho z predoslej pozicie ak sa to neda pochopit doplnim scrinsoty
zatim dik
_________________ Born in past, alive now, perhaps the death will arrive someday. |
|
Registrovaný: 25.12.06 Prihlásený: 01.03.13 Príspevky: 239 Témy: 20 Bydlisko: Krásno n/Ky... | Napísal m@-nX: 19.04.2010 18:23 | |
|
Neviem ci som ta spravne pochopil, ale skusim. Tiez vo svojom projekte pouzivam PictureBox do ktoreho vykreslujem zatial 1 obrazok z kamery a v pohode ide po stisknuti tlacitka vzdy vykreslit 1 obrazok. Skus nieco ako
Kód: if (pictureBox.Image != null) { pictureBox.Image.Dispose(); pictureBox.Image = null; pictureBox.Refresh(); }
a potom mu nastav novy image.
|
|
Registrovaný: 03.05.08 Prihlásený: 20.06.12 Príspevky: 8 Témy: 2 Bydlisko: LC | Napísal autor témy cccp14: 05.05.2010 22:21 | |
|
no robil som aj update() aj refresh() aj nieco tretie (nevim si rychlo spomenut)
ale nepomohlo, ono sa to sprava tak, ze ked pomocou alt+tab prepnem na ine okno a znovu zobrazim to herne, je to prekreslene ako chcem, ked picturebox (ten moj MyPB) opat presuniem, zas si so sebou vezme uz teraz nove pozadie, a opat ked prepnem na ine okno a spat zas je to spravne...
_________________ Born in past, alive now, perhaps the death will arrive someday. |
|
| Stránka: 1 z 1
| [ Príspevkov: 3 ] | |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|