Procedura dettagliata: implementazione di un nuovo stile
Aggiornamento: novembre 2007
Per la maggior parte dei controlli mobili ASP.NET, la classe base Style assicura una copertura sufficiente per gli stili delle proprietà. Tuttavia i singoli controlli potrebbero richiedere classi di stile specializzate che forniscono proprietà aggiuntive specifiche per il controllo.
È necessario che tutte le classi di stile specializzate ereditino dalla classe base Style. La classe base fornisce il supporto automatico per la gestione dello stato e l'ereditarietà. Per utilizzare tali funzionalità, è necessario che tutte le nuove proprietà siano definite e memorizzate nella classe di stile specializzata, in una proprietà fornita dalla classe base.
Per aggiungere il supporto per le proprietà in una classe di stile specializzata
Creare una classe di stile specializzata che eredita dalla classe base Style.
Eseguire l'override del metodo CreateStyle del controllo e restituire un'istanza della classe di stile specializzata.
protected override Style CreateStyle() { return new NewStyle(); }
Facoltativamente, creare una nuova proprietà nel controllo per tipizzare fortemente la proprietà Style. La nuova proprietà può essere utilizzata nel passaggio successivo (passaggio 4).
protected NewStyle NewStyle { get { return (NewStyle)Style; } }
Per ogni nuova proprietà nella classe specializzata, fornire una proprietà nella classe del controllo. Queste rappresenteranno le funzioni di accesso pubblico per le proprietà di stile. Le implementazioni di queste proprietà consentono di eseguire la chiamata all'oggetto stile.
protected String ThemeName { get { return NewStyle.ThemeName; } set { NewStyle.ThemeName = value; } }
Per aggiungere un nuovo stile
Dichiarare un valore public static string come campo membro, inizializzato sul valore restituito di una chiamata al metodo RegisterStyle definito nella classe base. Nell'esempio di codice riportato di seguito viene creata una proprietà string che supporta l'ereditarietà, con valore predefinito corrispondente a una proprietà string vuota ("").
public static String ThemeNameKey = RegisterStyle(ThemeName, typeof(String), String.Empty, true);
Il metodo RegisterStyle registra la nuova proprietà di stile e restituisce una chiave univoca che può essere utilizzata per fare riferimento allo stile nella proprietà. In base ai parametri del metodo RegisterStyle vengono definiti il nome, il tipo di dati e il valore predefinito della proprietà, nonché il comportamento dell'ereditarietà.
È preferibile che la chiave sia pubblica, in quanto gli adattatori di controllo la utilizzano anche per accedere al valore della proprietà che supporta l'ereditarietà.
Mediante l'utilizzo della proprietà indicizzatore predefinita della classe base, creare una proprietà pubblica la cui implementazione accede alla proprietà.
public String ThemeName { get { return (String)this[ThemeNameKey]; } set { this[ThemeNameKey] = value; } }
Vedere anche
Concetti
Accesso alle proprietà di stile negli adattatori di dispositivo