b를 이용하면 간단하게 아래의 방법으로 EventTrigger를 쉽게 사용할 수 있습니다. 이전에는 RoutedEvent="Button.Click"을 이용해야 했지만, 지금은 Click로 사용 가능합니다.
Mouse Drag Element Behavior
구성 요소를 마우스의 드래그 동작으로 이동 할 수 있습니다.
DataGrid 컨트롤을 런타임에 드래그로 위치를 이동 시킬 수 있습니다.
Trazlate Zoom Rotate Behavior
터치 기반 상호 작용을 지원합니다.
터치를 이용해서 이동이나 회전, 확대를 할 수 있습니다.
비터치 장치에서는 Mouse Drag Element Behavior와 비슷한 동작을 수행합니다.
Fluid Move Behavior
구성 요소를 부드럽게 이동시키는 비헤이비어
ItemsPanelTamplate를 생성합니다. ItemsPanelTemplate에 밑줄이 그어지면서 오류가 발생하지만, 실행은 가능합니다. 정확한 원인은 모르겠네용. Behavior Sample에는 문제 없었는데;; 자주 사용되는 녀석은 아니니 참고만 하세요
ListBox의 ItemsPanel을 설정합니다.
Remove 버튼을 하나 추가하고, 버튼을 클릭했을 때 ViewModel에서 People의 0번째 아이템을 삭제합니다.
Fluid Move Set Tag Behavior
다른 항목을 기반으로 FluidMoveBehavior 시작 위치를 설정할 수 있습니다.
ListBox에서 선택한 아이뎀을 보여주는 상세 영역으로 날라가는 애니메이션을 표현합니다.
이동할 대상을 FluidMoveSetTagBehavior로 지정합니다.
이동할 위치를 FluidMoveBehavior로 지정합니다.
이 때 DataContext를 아래와 같이 ListBox의 SelectedItem으로 지정해 주어야 합니다. 즉, 이 Grid의 DataContext는 ViewModel이 아니라 PeopleListBox의 SelectedItem이 됩니다.
실행 결과는 직접 확인하시면 좋을 것 같습니다. 재미있네요 ㅋㅋ
사용해보니 DataTemplate와 ItemsPanelTemplate 내부에 FluidMoveBehavior나 FluidMoveSetTagBehavior를 사용하니 오류가 나는데, 이 부분이 신경 쓰이신다면, 사용하지 않는 것을 권장합니다. 딱히 중요한 기능은 아니라..
오류가 발생하는 리소스를 ListBox에 연결하기 위해서 StaticResource가 아니라 DynamicResource로 변경했으니 참고 부탁드립니다.