2010-01-14 2 views
13

프로그래밍 방식으로 WPF FrameworkElement의 현재 Visual State를 가져 오는 방법은 무엇입니까? 상태에 따라 "Normal", "MouseOver", "Disabled"등의 상태를 의미합니다.WPF FrameworkElement의 현재 Visual State를 프로그래밍 방식으로 얻으려면 어떻게해야합니까?

EDIT : 기본적으로 버튼의 시각적 상태를 VisualStateManager.GoToState(e, "MouseOver", true);으로 변경하고 있는데 어떤 상태인지 알고 싶습니다. 내가 끝나면 다시 그것을 바꿀 수 있습니다.

답변

2

나는 당신이 스스로 알아야 할/단추 상태를 기억해야한다고 생각합니다. VSM은 단추가있는 상태를 GoToState 방법으로 표시합니다.

편집 : 나는 제어 상태를 기억하는 custom VSM을 만드는 방법에 대한 기사를 발견했습니다.

+2

링크가 손상되었습니다. – JohnFx

0

GoToState 메서드 대신 GoToElementState 메서드를 사용해야한다고 생각합니다.

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

이상하게도 나는이 방법을 보지 못했다. 물론 .NET 3.5 용 WPF 툴킷의 VisualStateManager를 사용하고 있으므로 .NET 4.0 또는 Silverlight 1에 내장 된 것과 다를 수 있습니다. – jpierson

0

여기 WPF의 요점을 놓친 것 같아요.보기가 모델이 아닙니다. 보기에 상태를 저장하면 안됩니다. 모델에 상태를 저장하고 뷰를 사용하여 모델을 나타냅니다. 그 근거로 View의 상태를 읽을 필요는 없으며 이미 알고 있습니다.

나는 이것이 현재 많은 작업처럼 보일 수 있지만 나중에 스페이드로 지불 할 것임을 알고 있습니다.