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


per leggere il post originale o inviare un commento visita il seguente indirizzo: ASP.NET 2.0: Applicare uno skin ad una proprietà di tipo Url