[WPF] 애니메이션 Completed 이벤트에서 해당 애니메이션을 실행하는 UI 객체 가져오기

2165 단어 WPF
텍스트:
[WPF] 애니메이션 Completed 이벤트에서 해당 애니메이션을 실행하는 UI 객체 가져오기
어제 그룹에서 어떤 어린이 신발이 애니메이션 완성 이벤트 Completed에서 이 애니메이션을 실행하는 UI 대상을 가져오는 방법을 제시했다.
WPF에서 애니메이션의Completed 자체는 애니메이션을 실행하는 UI 대상을 되돌려주지 않지만, 우리는 추가 속성 Storyboard를 이용할 수 있습니다.TargetProperty를 사용하여 원하는 결과를 얻을 수 있습니다.
단계:
1 애니메이션을 실행하기 전에 속성 레코드 객체를 첨부합니다.
DoubleAnimation ani = new DoubleAnimation();

ani.From = start;

ani.To = end;

ani.Duration = new Duration(TimeSpan.FromSeconds(0.25));

ani.Completed += ani_Completed;



/* !!!     Storyboard.Target,         UI   !!! */

Storyboard.SetTarget(ani, uiElement);



 /*      */

uiElement.BeginAnimation(Canvas.LeftProperty, ani);

 
2 애니메이션의 Completed 이벤트 방법에서 가져오기
if (sender is AnimationClock)

{

  AnimationTimeline timeline = (sender as AnimationClock).Timeline;

   /* !!!        UI     !!! */

   object uiElement = Storyboard.GetTarget(timeline);

}

 
참조용 Demo 1개 포함

좋은 웹페이지 즐겨찾기