2010-01-13 10 views
5

Ho creato un controllo personalizzato che estende il controllo del contenuto. All'interno di questo ho un modello di parti e stati che sta funzionando bene.Visual State Manager su controllo personalizzato

ho quindi utilizzare questo come la radice del mio XAML (l'inserimento del codice nella cartella dei modelli in Blend)

Tutto funziona bene, posso aprire un nuovo 'DaveControl' e ottenere la funzionalità che voglio.

Tuttavia, se poi aggiungo, fare qui alcuni stati visivi, come alertOnScreen e provare a utilizzare visualstatemanager, non funziona.

infatti non ci sono stati elencati.

Il comportamento in GotoVisualState SL3 funziona benissimo!

Come posso far funzionare lo stato visivo nel codice?

+0

Navigando nel comportamento, ci vuole un elemento quadro piuttosto che un controllo. Questo funziona. – DavidA

risposta

1

Hai aggiunto il set di stati disponibili come un insieme di attributi TemplateVisualState nella classe? Miscela usa questi per configurare il suo elenco di stati disponibili.

La classe dovrebbe essere generalmente simile a questa: -

[TemplateVisualState(Name = "MyGroup1State1", GroupName = "MyGroup1")] 
[TemplateVisualState(Name = "MyGroup1State2", GroupName = "MyGroup1")] 
[TemplateVisualState(Name = "MyGroup2State1", GroupName = "MyGroup2")] 
[TemplateVisualState(Name = "MyGroup2State2", GroupName = "MyGroup2")] 
[TemplatePart(...)] 
[TemplatePart(...)] 
public class MyControl : ContentControl 
+0

Anthony, Gli stati visivi per il controllo funzionano. Il controllo è fondamentalmente un contenitore personalizzato ... Lo uso come elemento radice nel mio file xaml-> Nuovo controllo Dave (in questo modo posso derivare dalla classe senza il problema della classe parziale). Ora diciamo che questo controllo ha un pulsante su "Aggiungi indirizzo" che richiede qualcosa da spostare sul palco, personalizzato per questa istanza .... quindi il mio problema. Grazie per la risposta, con il titolo sono sicuro che aiuterà qualcuno. – DavidA

Problemi correlati