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
Sfondo form trasparente e immagina con gradiente
venerdì 05 settembre 2008 - 17.34
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Starinthe
Profilo
| Newbie
15
messaggi | Data Invio:
ven 5 set 2008 - 17:34
Salve ragazzi,
avrei la necessità di creare un'applicazione simile a "Windows Sidebar" il mio problema è quello di rendere la form trasparente e visualizzare solo un'immagine con gradiente del tipo "Blu -> Trasparente".
Qualcosa di simile a questo:
1280x800
408Kb
Qualcuno ha già affrontato questo problema?
Grazie anticipatamente
Faelar
Profilo
| Junior Member
71
messaggi | Data Invio:
mer 10 set 2008 - 09:33
Si, a me è capitato, e per risolverlo ho usato un accrocchio del Visual Studio:
1. Ho creato un immagine con il gradiente che va dal nero al bianco;
2. Ho trasformato il bianco in trasparente, salvando il formato dell'immagine in gif;
3. Ho inserito l'immagine nel form, ed ho impostato il colore di sfondo del Form, a giallo
limone (un colore inutilizzato), e la proprietà trasparent key allo stesso colore.
Così funziona. Se ti viene un modo migliore fammelo sapere
.
Grazie
Starinthe
Profilo
| Newbie
15
messaggi | Data Invio:
mer 10 set 2008 - 10:43
Ho creato questa immagine PNG con gradiente Nero->Trasparente:
200x1000
26Kb
Successivamente, dopo averlo impostato come sfondo del form, ho settato come colore di sfondo del form il rosa e stessa cosa per il trasparencykey ma il risultato è uno scandalo:
212x304
7Kb
Faelar
Profilo
| Junior Member
71
messaggi | Data Invio:
mer 10 set 2008 - 13:47
Ok, ti ho detto una cavolata. Questo funziona se hai un'immagine piatta.
Per il gradiente puoi provare così:
'Crea un rettangolo delle dimensioni del form
Dim myRectangle As New Rectangle(0, 0, Me.Width, Me.Height)
'Crea un brush con un gradiente
Dim myLinearGradientBrush As New Drawing2D.LinearGradientBrush(myRectangle, _
Color.Blue, _
Color.Transparent, _
Drawing2D.LinearGradientMode.Horizontal)
'Copia il desktop come immagine di sfondo del form
e.Graphics.CopyFromScreen(Me.Left, Me.Top, myRectangle.X - 2, myRectangle.Y - 30, myRectangle.Size)
'Disegna il gradiente sul form
e.Graphics.FillRectangle(myLinearGradientBrush, myRectangle)
Non è una soluzione tanto pulita, ma meglio di così, non saprei cosa fare, almeno senza utilizzare le DirectX.
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 !