|
Programiranje Java, Perl, VB, ASP, .NET, C, C++, Pascal, Delphi Sponzor: |
|
Alati teme | Način prikaza |
08. 03. 2009. | #1 |
član
Certified
Datum učlanjenja: 15.09.2006
Poruke: 70
Hvala: 6
6 "Hvala" u 3 poruka
|
Okretanje (rotiranje) kontrole (c#, .net, WinForm) problem
Potrebno mi je da okrenem(rotiram) kontrolu (user kontrola sadrzi button-e, svaki put za 90°). Radi se o klasičnoj windows formi.
U WPF-u sam uspeo da to uradim sa samo 2 linije koda: Kôd:
RotateTransform rt = (RotateTransform)canvas1.RenderTransform; canvas1.RenderTransform = new RotateTransform(rt.Angle + 90, 50, 100); |
08. 03. 2009. | #2 |
old school
Professional
Datum učlanjenja: 15.06.2005
Lokacija: Novi Beograd
Poruke: 448
Hvala: 21
70 "Hvala" u 46 poruka
|
Generalno, pisanjem novog OnPaint handlera.
Pogledaj recimo ovde: http://stackoverflow.com/questions/4...e-a-label-in-c
__________________
http://www.vesic.org | Blog: http://www.vesic.org/blog/ | Fina kolekcija programa: http://www.vesic.org/programi/ |
08. 03. 2009. | #3 |
član
Certified
Datum učlanjenja: 15.09.2006
Poruke: 70
Hvala: 6
6 "Hvala" u 3 poruka
|
Uzeo sam panel kao custom kontrolu i po toj logici trebao bi samo ovo da ostavim:
Kôd:
protected override void OnPaint(PaintEventArgs e) { Graphics graphics = e.Graphics; graphics.RotateTransform(90); } |
08. 03. 2009. | #4 |
majstor
Wrote a book
|
Dozvolicu sebi da lupim ali mislim da trebas koristiti metod Render ili Refresh ili nesto tako jer je Show zapravo promjena statusa a ne iscrtavanje (nisam radio u VBu nikad, jesam u Delphiju).
|
09. 03. 2009. | #5 |
član
Certified
Datum učlanjenja: 24.02.2009
Poruke: 55
Hvala: 0
11 "Hvala" u 7 poruka
|
Ako pogledas prethodno dati link, videces da se u OnPaint dogadjaju podesavaju parametri za transformaciju i tek onda crta string. Takodje radi se o Label kontroli a ne kao u tvom slucaju o kompozitnoj kontroli. Ono sto bi mogao da uradis je da u OnPaint dogadjaju pokupis bitmapu sa grafickog objekta, ocistis graficki objekat, i da onda tu bitmapu iscratas po grafickom objektu rotiranu za zeljeni ugao. Samo nisam siguran da ce se i regioni nad kojima su unutrasnje kontrole aktivne takodje rotirati.
|
09. 03. 2009. | #6 |
član
Certified
Datum učlanjenja: 15.09.2006
Poruke: 70
Hvala: 6
6 "Hvala" u 3 poruka
|
U pravu si, ali probao sam i sa Refresh(), i ne radi, zato i menjam širinu panel-a za jedan pixel, onda mora da uradi OnPaint.
|
09. 03. 2009. | #7 | |
član
Certified
Datum učlanjenja: 15.09.2006
Poruke: 70
Hvala: 6
6 "Hvala" u 3 poruka
|
Citat:
Mogu i ovo da uradim: Kôd:
Graphics g = panel1.CreateGraphics(); g.RotateTransform(90); E, kad bi mogao da cast-ujem Graphics objekat ponovo u panel bilo bi lepo. |
|
16. 03. 2009. | #8 | |
Domagoj Horvat
Expert
|
Citat:
http://msdn.microsoft.com/en-us/library/598t492a.aspx
__________________
postoje ludosti bez kojih je nemoguce ljudsko dostojanstvo |
|
|
|
Slične teme | ||||
Tema | Početna poruka teme | Forum | Odgovori | Poslednja poruka |
Mockup sajta - stranice i osnovne kontrole? | DejanVesic | Web aplikacije, web servisi i software | 7 | 14. 08. 2009. 19:10 |
Double float problem - resen, ali ima dodatni problem :0 | ljtruba | (X)HTML, JavaScript, DHTML, XML, CSS | 34 | 23. 08. 2008. 03:28 |