Condividi tramite


Procedura dettagliata: implementazione di un nuovo stile

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

  1. Creare una classe di stile specializzata che eredita dalla classe base Style.

  2. Eseguire l'override del metodo CreateStyle del controllo e restituire un'istanza della classe di stile specializzata.

    [C#]

    protected override Style CreateStyle()
    {
        return new MyStyle();
    }
    
  3. Se lo si desidera, creare una nuova proprietà nel controllo per tipizzare in modo sicuro la proprietà Style. La nuova proprietà può essere utilizzata nel passaggio 4.

    [C#]

    protected MyStyle MyStyle
    {
        get
        {
            return (MyStyle)Style;
        }
    }
    
  4. 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.

    [C#]

    protected String ThemeName
    {
        get
        {
            return MyStyle.ThemeName;
        }
        set
        {
            MyStyle.ThemeName = value;
        }
    }
    

Per aggiungere un nuovo stile

  1. Dichiarare una stringa statica pubblica come campo membro, inizializzata sul valore restituito di una chiamata al metodo RegisterStyle definito nella classe base. Nell'esempio riportato di seguito viene creata una proprietà String che supporta l'ereditarietà, con valore predefinito corrispondente a una stringa vuota ("").

    [C#]

    public static String ThemeNameKey = 
        RegisterStyle(ThemeName, typeof(String), String.Empty, true);
    

    Il metodo RegisterStyle consente di registrare la nuova proprietà di stile e di restituire una chiave univoca che può essere utilizzata in 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 dei controlli la utilizzano anche per accedere al valore della proprietà che supporta l'ereditarietà.

  2. Mediante l'utilizzo della proprietà indicizzatore predefinita della classe base, creare una proprietà pubblica la cui implementazione accede alla proprietà.

    [C#]

    public String ThemeName
    {
        get
        {
            return (String)this[ThemeNameKey];
        }
        set
        {
            this[ThemeNameKey] = value;
        }
    }
    

Vedere anche

Stili | Creazione di nuovi stili | Accesso alle proprietà di stile negli adattatori di dispositivo