Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 2 odgovora
  • 2.369 pregleda

Najnovija ↓

C# OnPaint pomoc 04.11.2013. u 16:57 · pre 158 meseci #1
Ekran forme je podeljen na dva pravougaonika(oblasti), s' tim sto prvi zauzima 2/3 ekrana, a drugi 1/3. Npr:
Code:

 this.ClientSize = new System.Drawing.Size(842, 498);
 this.Name = "Form1";
 this.ResumeLayout(false);


protected override void OnPaint(PaintEventArgs e)
        {
            base.OnPaint(e);
         

            SolidBrush brush = new SolidBrush(Color.Red);
            SolidBrush brush1 = new SolidBrush(Color.Green);

            Rectangle rect = new Rectangle(0, 0, Width, 20);
            Rectangle rect1 = new Rectangle(0, 20, Width, 10);
           

            e.Graphics.FillRectangle(brush, rect);
            e.Graphics.FillRectangle(brush1, rect1);
          
    }

Cilj je, da ukoliko uradim resize prozora(recimo uvecam), ti pravougaonici automatski iscrtaju u novim dimenzijama, pri cemu ce opet zauzimati 2/3(1/3) prozora.
Pokusao sam sa Invalidate(), dobijem to sto hocu, ali ekran blinka.
Na koji nacin mogu to da uradim?
Re: C# OnPaint pomoc 04.11.2013. u 18:48 · pre 158 meseci #2
Ako pozivas Invalidate u Resizing eventu onda ti se i desava da ti prozor blinka zato se resizing event se ispaljuje na svaki pixel pomeraja.
Bolje je da pozivas Invalidate na Resized event jer ce se on ispaliti samo jednom - kada se resize zavrsi .

Druga solucija je da pozivas u resizing eventu overload Invalidate metode koja prihvata kao parametar rectangle a to je ona povrsina koja se zapravo promenila u resizu, koju opet moras da izracunas , tako da ces time eliminisati blinkanje ali nekad ni to nije bas moguce u potpunosti zavisi od slucaja.

Cini mi se da imas property nad formom DoubleBuffered koja sprecava blinkanje tj . repaint cele povrsine tako da ti ova druga solucija mozda i ne treba.




Potpis
Viva lollapalooza
Re: C# OnPaint pomoc 05.11.2013. u 09:08 · pre 158 meseci #3
Mozes li mi dati primer, nisam siguran da sam te najbolje razumeo. Obzirom da sam nov u GUI-u, znacila bi mi svaka pomoc.
Hvala unapred
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme