2010-01-14 1 views
13

Wie programmiere ich programmgesteuert den aktuellen Visual State eines WPF FrameworkElement? Und durch staatliche meine ich die Zustände wie „Normal“, „Mouseover“, „Disabled“ usw.Wie erhalte ich programmatisch den aktuellen visuellen Status eines WPF FrameworkElement?

EDIT: Grundsätzlich bin ich das Visual Zustand einer Schaltfläche mit VisualStateManager.GoToState(e, "MouseOver", true); ändern, und ich möchte wissen, in welchem ​​Zustand um es zu ändern, nachdem ich fertig bin.

Antwort

2

Ich denke, dass Sie den Knopfzustand selbst kennen/sich erinnern müssen. VSM zeigt nur den Status an, in dem sich die Schaltfläche befindet, durch GoToState Methode.

Edit: Ich habe gerade einen Artikel gefunden, wie man eine custom VSM erstellt, die Steuerzustände erinnert.

+2

Ihr Link verrottet. – JohnFx

0

Ich denke, Sie sollten GoToElementState-Methode anstelle von GoToState-Methode verwenden.

VisualStateManager.GoToElementState(LayoutRoot, "Add", true); 
+0

Seltsam, ich sehe diese Methode nicht einmal. Natürlich verwende ich den VisualStateManager aus dem WPF-Toolkit für .NET 3.5, damit er sich von dem in .NET 4.0 oder dem von Silverlight eingebauten unterscheidet. – jpierson

0

Ich glaube, Sie den Punkt der WPF hier verpasst haben, dann ist es die Ansicht nicht das Modell. Sie sollten den Status nicht in der Ansicht speichern. Speichern Sie den Status in Ihren Modellen und verwenden Sie die Ansicht, um ihn darzustellen. Auf dieser Basis müssen Sie den Status der View nicht lesen, Sie kennen ihn bereits.

Ich weiß, dass dies im Moment eine Menge Arbeit scheint, aber es wird Sie später in Spaten zurückzahlen.

Verwandte Themen