Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Forms arrotondati
mercoledì 12 luglio 2006 - 15.38
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Carlik
Profilo
| Junior Member
158
messaggi | Data Invio:
mer 12 lug 2006 - 15:38
Salve,
La mia applicazione deve creare dei form che al posto dei classici vertici con angoli a 90° devono avere delle forme arrotondate.
Ho provato diverse strade ma non ho concluso niente;qualkcuno sa come si potrebbe fare?
L'ultima che ho pensato è stata:creare un'immagine arrotondata come immagine di sfondo , riempiendo di un verde l'angolo e poi inserire il verde nel valore transparencyKey (delle proprietà della form)...ma non funziona...
thewalll79
Profilo
| Newbie
5
messaggi | Data Invio:
mer 12 lug 2006 - 20:24
che io sappia non è possibile farlo in c#..
so che lo è in c++ operando a basso livello
ciao
Carlik
Profilo
| Junior Member
158
messaggi | Data Invio:
gio 13 lug 2006 - 12:34
Per fortuna alla fine sono riuscito a farlo (in vb 2005)
Public Sub ArrotondaForm(ByVal MyForm As Form)
Dim offScreenBmp As Bitmap
Dim offScreenDC As Graphics
offScreenBmp = New Bitmap(MyForm.Width, MyForm.Height)
offScreenDC = Graphics.FromImage(offScreenBmp)
'//Creazione del rettangolo smussato
Dim radius As Integer = 25
Dim startx As Integer = 0
Dim starty As Integer = 0
Dim endx As Integer = MyForm.Width - startx - 1
Dim endy As Integer = MyForm.Height - starty - 1
Dim pt As GraphicsPath = New GraphicsPath()
'//Line Hz Top
Dim phtl As Point = New Point(startx + radius, starty)
Dim phtr As Point = New Point(endx - radius, starty)
'//Line Hz Down
Dim phdr As Point = New Point(startx + radius, endy)
Dim phdl As Point = New Point(endx - radius, endy)
'//Line Vertical Left
Dim pvlt As Point = New Point(startx, radius + starty)
Dim pvld As Point = New Point(endx, endy - radius)
'//Line Vertical Right
Dim pvrd As Point = New Point(endx, starty + radius)
Dim pvrt As Point = New Point(endx, endy - radius)
pt.AddArc(startx, starty, radius * 2, radius * 2, 180, 90)
pt.AddLine(phtl, phtr)
pt.AddArc(endx - (radius * 2), starty, radius * 2, radius * 2, 270, 90)
pt.AddLine(pvrt, pvrd)
pt.AddArc(endx - (radius * 2), endy - (radius * 2), radius * 2, radius * 2, 0, 90)
pt.AddLine(phdl, phdr)
pt.AddArc(startx, endy - (radius * 2), radius * 2, radius * 2, 90, 90)
pt.AddLine(pvlt, pvld)
MyForm.Region = New Region(pt)
End Sub
D0X
Profilo
| Newbie
43
messaggi | Data Invio:
gio 13 lug 2006 - 13:11
interessante....con i graphicspath...lo traduco in C# e vedo cosa succede :D
Carlik
Profilo
| Junior Member
158
messaggi | Data Invio:
gio 13 lug 2006 - 17:39
eheh inizialmente era in c#,quindi...ehehe
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !