Page List

2015년 9월 16일 수요일

[WPF] GoToStateAction

GoToStateAction는 설정한 State를 작동하게 만들어 주는 기능입니다.


전 시간에 사용했던 VisualState에 있는 파일 그대로 사용합니다.

자산을 클릭하거나 단축키(Ctrl+.)를 사용하시면 확장리스트가 나오구요.
GotoStateAction을 드래그 하여 사용할 컨트롤에 안착시킵니다.




아래와 같이 Action을 처리하게 될 Button에 안착시켰으며,
GotoStateAction의 세부 속성창이 나타납니다.




Button에 GotoStateAction을 하나 더 붙이고, 각각을 아래와 같이 설정합니다.
Button MouseEnter일 때, Right State를
MouseLeave일 때, Left State를 실행하라 입니다.

실행해보시면, 잘 되시죠?

이와 같이,
방아쇠 역할(트리거)을 할 SourceObject를 정하시면
그에 맞는 EventName들이 리스트업되고,
그 중 하나를 선택하신 후, StateName을 지정해주시면 됩니다.




트리거와 조건 부분은 따로 빼서 포스팅 하도록 하겠구요
공용 부분을 보시겠습니다.

UseTransitions : 애니메이션 효과 사용 / 미사용
체크해제하시면, 시간설정, 가속도설정, 애니메이션 다 무시되고, 결과만 나오게 됩니다.

IsEnabled : 스테이트 사용 / 미사용

TargerObject가  기본(Window)으로 돼 있고, 그에 대한 스테이트가 보이시져?
그럼 TargerObject를 바꿔보면 어떻게 될까요?




TargetName 또는 TargerObject 아무거나 요소선택하시고 button에 클릭하면
오른쪽 처럼 TargetName 네임이 바뀌면서 button안에 있는 StateName들이 쫙 나옵니다.
타켓지정으로 타켓에 대한 스테이트를 확인 할 수 있으니, 확장성이 우수합니다.




아래는 확장성을 보여드리기 위해, 만든 것입니다.
쉽게 말해 타켓을 이용해 다른 페이지의 State까지 건드릴 수 있습니다.

HeaderUserControl을 추가하고
보였다/ 안보였다 하는 State를 만듭니다.

MainWindow에 HeaderUC버튼과 GotoState를 추가합니다.
GotoState 타켓을 HeaderUserControl로 맞추고
그 안에 있는 보였다/안보였다 State를 지정합니다.

잘 이해가 안가신다면,
동영상과 파일 확인하시면 쉽게 이해 되실겁니다.







0 개의 댓글:

댓글 쓰기