Se create un WebControl e poi decidete di applicare ad esso
l'utilizzo dei temi è necessario avere un particolare accorgimento per le
proprietà che questo espone se debbono contenere un url relativo alla root del
tema.
Ad esempio, se create una proprietà del WebControl, che espone
l'url di una immagine che utilizzate per il rendering (ButtonImageUrl) e poi
impostate questa proprietà nel file .skin vi renderete immediatamente conto che
l'url che viene passato a runtime al WebControl è relativo la root
dell'applicazione e non a quella del tema. Per ottenere la trasformazione
relativa al tema occorre applicare alla property un attributo di tipo
UrlProperty:
[UrlProperty]
public string ButtonImageUrl
{
get { return this.buttonImageUrl; }
set { this.buttonImageUrl = value; }
}
Interessante notare che tale attributo dispone anche di una
proprietà Filter, che consente di discriminare il tipo di file che devono essere
soggetti alla trasformazione. Ad esempio se scrivere l'attributo come segue,
solo le immagini gif saranno ricalcolate sulla base della root del
tema.
[UrlProperty(Filter="*.gif")]
powered by IMHO 1.3