Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Rad sa grafikom u .NET-u

[es] :: .NET :: .NET Desktop razvoj :: Rad sa grafikom u .NET-u

[ Pregleda: 2476 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

cesare
Misko Petrovic

Član broj: 55805
Poruke: 201
*.dynamic.sbb.rs.



+1 Profil

icon Rad sa grafikom u .NET-u08.04.2010. u 21:34 - pre 170 meseci
Pozdrav svima !!!!

Uopšte nisam radio sa grafikom u .NET-u, a hteo bih da napravim jednu svoju kontrolu. U toj kontroli treba da bude PictureBox i u sredini njega jedan Label. PictureBox je početno prazan (svojstvo Image nije definisano). Kada korisnik pređe mišem preko PictureBox-a on treba da prikaže neku sliku. Ono što meni treba je da i Label bude vidljiv u tom trenutku, jer on pokazuje tekst, ali da se istovremeno i on "ofarba" u boju slike koja je učitana u PictureBox, tj da i njegova pozadina prikaže onaj deo slike koji prekriva inače, a da tekst ostane vidljiv. Da li je ovo moguće izvesti i kako ?

Unapred hvala ...

 
Odgovor na temu

mish_ns
Miloš Krstin

Član broj: 159930
Poruke: 1105
109.106.244.*



+18 Profil

icon Re: Rad sa grafikom u .NET-u08.04.2010. u 22:20 - pre 170 meseci
Mozda ce ti biti lakse da postavis button i dodas sliku u njega preko Image ili BackgroundImage osobina za dugme.
Pa probaj nesto sa MouseLeave i MouseEnter dogadjajima.

Nesto slicno ovome (ovo je za rollover)
Code:

        private void button1_MouseLeave(object sender, EventArgs e)
        {
            button1.Image = Properties.Resources.slika1;
        }

        private void button1_MouseEnter(object sender, EventArgs e)
        {
            button1.Image = Properties.Resources.slika2;
        }

Prethodno importujes slike u projekat.
 
Odgovor na temu

bojan21
Bojan Zukic
Beograd

Član broj: 101113
Poruke: 251
92.244.151.*



+6 Profil

icon Re: Rad sa grafikom u .NET-u09.04.2010. u 02:58 - pre 170 meseci
Ukoliko bas hoces da koristis PictureBox onda probaj ovako:

Code:

        private void pictureBox1_MouseEnter(object sender, EventArgs e)
        {
            pictureBox1.Image = Properties.Resources.puzzle;    //ucitavas sliku iz resursa
            label1.Parent = pictureBox1;                                //ovo ti omogucava transparentnost labela (posto nije podrzana na 'normalan nacin')
            label1.Visible = true;                                          // i naravno, prikazujes label
        }

        private void pictureBox1_MouseLeave(object sender, EventArgs e)
        {
            pictureBox1.Image = null;            //brises sliku iz pictureBoxa
            label1.Visible = false;                 //sakrivas label
        }


Naravno, ovaj deo:
Code:

label1.Parent = pictureBox1; 

si mogao da stavis u OnLoad metodu (pa da ne pises u pictureBox.MouseEnter) da se ne bi bezveze, svaki naredni put kad se misem predje preko pictureBoxa to izvrsavalo (dovoljno je samo jednom).
Pozdrav

edit: Zaboravih da napomenem, svojstvo labela BackColor treba da je postavljeno na Transparent.

[Ovu poruku je menjao bojan21 dana 09.04.2010. u 10:39 GMT+1]
 
Odgovor na temu

mish_ns
Miloš Krstin

Član broj: 159930
Poruke: 1105
109.106.236.*



+18 Profil

icon Re: Rad sa grafikom u .NET-u09.04.2010. u 12:04 - pre 170 meseci
Mislim da ovo sa label BackColor postavljenim na Transparent nece raditi...

Kada je BackColor neke kontrole postavljen na Transparent on uzima boje Parent kontejnera. PictureBox nije kontejner.
Tako da labela preuzima kao BackColor boju forme koja je sivkasta...

Ako vec hoces na taj nacin probaj ovako:

1. koristi Panel kontrolu
2. postavi BackGroundImage osobinu tj. sliku koju hoces da prikazes, i BackGroundImageLayout postavi na Center
3. dodaj labelu na panel
4. u Form1() dodaj
Code:

        public Form1()
        {          
            InitializeComponent();
            panel1.BackgroundImage = null;
        }

5. dodaj Event za labelu
Code:

        private void label1_MouseEnter(object sender, EventArgs e)
        {
            panel1.BackgroundImage = Properties.Resources.tvojaslika;       
        }

6. i jos jedan za panel
Code:

         private void panel1_MouseLeave(object sender, EventArgs e)
        {
            panel1.BackgroundImage = null;
        }



PS. Ako ti je nesto pomoglo ili odmoglo javi, cisto da bi i drugi ljudi znali sta da iskoriste!!!
 
Odgovor na temu

bojan21
Bojan Zukic
Beograd

Član broj: 101113
Poruke: 251
92.244.151.*



+6 Profil

icon Re: Rad sa grafikom u .NET-u09.04.2010. u 20:27 - pre 170 meseci
Citat:

Mislim da ovo sa label BackColor postavljenim na Transparent nece raditi...

Kada je BackColor neke kontrole postavljen na Transparent on uzima boje Parent kontejnera. PictureBox nije kontejner.
Tako da labela preuzima kao BackColor boju forme koja je sivkasta...


Kod sam proverio i radi sasvim lepo. A sto se tice ovog za BackColor svojstvo, ukoliko mu nije dodeljena vrednost, ono se nasledjuje od Parent kontrole koja pritom uopste ne mora da bude kontejner.
Pozdrav
 
Odgovor na temu

[es] :: .NET :: .NET Desktop razvoj :: Rad sa grafikom u .NET-u

[ Pregleda: 2476 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.