Sfondo form trasparente e immagina con gradiente

venerdì 05 settembre 2008 - 17.34

Starinthe Profilo | Newbie

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

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

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

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.
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 !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5