Classe LinearGradientBrush

lunedì 12 marzo 2007 - 12.16

franco_rh Profilo | Junior Member

Salve a tutti!
Avevo deciso di personalizzare il mio sito web e volevo inserire uno sfondo sfumato.
Optare per un immagine di sfondo andrebbe anche bene, ma ha i suoi limiti: prima di tutto il 'peso' sulla pagina web che, anche volendo utilizzare un immagine gif a bassa risoluzione, e' significativo, poi il fatto che bisognerebbe adeguare l'immagine alla risoluzione dello schermo di ogni client che fa una richiesta, altrimenti ci ritroveremmo con uno sfondo che si 'interrompe' a tre quarti di pagina per poi riprendere a fianco o sotto con una interruzione di immagine che fa a dir poco schifo (nel caso di uno sfondo sfumato).
Siccome per le applicazioni stand-alone di visual studio c'è a disposizione una classe simpatica: 'system.drawing.drawing2d.lineargradientbrush' volevo usarla in VWB per applicarla all'elemento '<body/>'
Ma purtroppo mi son reso conto che ci sono degli ostacoli:
- per prima cosa immagino che bisognerebbe applicare i metodi della classe linear nell'evento di pagina PreRender, è cosi' ?
- di solito l'evento Paint delle applicazioni stand-alone dispone di un attributo e.graphics.fillrectangle a cui associare la classe 'linear'
in VWB dove viene associato il metodo?
- inoltre sembra che gli elementi '<form/>' e '<body/>' non dispongano di attributi WIDTH e HEIGHT a cui fare riferimento a runtime per selezionare l'area di riempimento: come si fa?

grazie per la vostra attenzione!
MarijCat

Brainkiller Profilo | Guru

La strada che stai seguendo è decisamente errata o per lo meno parzialmente.

La prima idea che hai buttato lì è quella giusta, utilizzare una piccola immagine che può essere tipo da 1 pixel di larghezza per 100 di altezza o 200, che contiene il gradiente, poi la applichi così al body:

<body style="background-image:url('/img/immagine.gif')">

In questo modo l'immagine si ripete sia in orizzontale che in verticale allora tu puoi aggiungere altri due attributi css in questo modo:

<body style="background-image:url('/img/immagine.gif');background-repeat:repeat-x">

per farla ripetere solo in orizzontale.
Oppure:

<body style="background-image:url('/img/immagine.gif');background-repeat:repeat-y">

per farla ripetere solo in verticale.

In questo modo non hai + quell'effetto di cui parli e va bene per tutte le risoluzioni.
Naturalmente, se fai un gradiente dall'alto (Rosso) al basso (bianco), anche il colore di background del body dovrà essere bianco.
ciao


David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/
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