2010-01-13 6 views
5

Ich habe ein benutzerdefiniertes Steuerelement erstellt, das Inhaltskontrolle erweitert. Darin habe ich ein Modell für Teile und Zustände, das gut funktioniert.Visual State Manager auf Benutzerdefiniertes Steuerelement

ich dies dann als die Wurzel meiner XAML verwenden

Alles funktioniert gut (den Code in der Vorlagenordner in Mischung platzieren), kann ich ein neues ‚DaveControl‘ öffnen und die Funktionalität erhalten, die ich will.

Wenn ich jedoch hinzufügen, einige visuelle Zustände hier machen, wie AlertOnScreen und versuchen, den VisualStatemanager zu verwenden, funktioniert es nicht.

Es sind keine Zustände aufgeführt.

Das Verhalten in SL3 GotoVisualState funktioniert gut!

Wie kann ich den visuellen Zustand in Code arbeiten lassen?

+0

Beim Durchsuchen des Verhaltens wird ein Framework-Element anstelle eines Steuerelements benötigt. Das funktioniert. – DavidA

Antwort

1

Haben Sie die Menge verfügbarer Zustände als eine Menge von TemplateVisualState Attributen der Klasse hinzugefügt? Blend verwendet diese, um die Liste der verfügbaren Status zu konfigurieren.

Ihre Klasse sollte wie folgt aussehen im Allgemeinen: -

[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, Die visuellen Zustände für die Steuerung dort arbeiten. Das Steuerelement ist im Grunde ein benutzerdefinierter Container ... Ich verwende es als das Wurzelelement in meiner XAML-Datei-> New Dave Control (so kann ich von der Klasse ohne das partielle Klassenproblem ableiten). Jetzt sagen Sie, dass dieses Steuerelement eine Schaltfläche "Adresse hinzufügen" hat, die etwas erfordert, um auf der Bühne zu bewegen, die für diese Instanz benutzerdefiniert ist. Daher mein Problem. Danke für die Antwort, mit dem Titel Ich bin sicher, es wird jemandem helfen. – DavidA

Verwandte Themen