이번 포스팅에서는
이미지 경로가 들어 있는 배열을 읽어 들어와
MouseEnter시 이미지 크기가 커지고 MouseLeave시 크기가 작아지는
간단한 애니메이션에 대해 알아 보겠습니다.
비하인드 코드에서 작성을 해보았습니다.
소스는 보시는 바와 같이
애니메이션을 만들어 이미지 객체의 EventTrigger에 연결 시키는 단순한 소스입니다.
Storyboard MenuReset = new Storyboard(); DoubleAnimation withAnimation = new DoubleAnimation(100, new Duration(TimeSpan.Parse("0:0:0.15"))); DoubleAnimation heightAnimation = new DoubleAnimation(150, new Duration(TimeSpan.Parse("0:0:0.15"))); Storyboard.SetTargetProperty(withAnimation, new PropertyPath(WidthProperty)); Storyboard.SetTargetProperty(heightAnimation, new PropertyPath(HeightProperty)); MenuReset.Children.Add(withAnimation); MenuReset.Children.Add(heightAnimation); Storyboard ClickMenu = new Storyboard(); DoubleAnimation _withAnimation = new DoubleAnimation(200, new Duration(TimeSpan.Parse("0:0:0.15"))); DoubleAnimation _heightAnimation = new DoubleAnimation(300, new Duration(TimeSpan.Parse("0:0:0.15"))); Storyboard.SetTargetProperty(_withAnimation, new PropertyPath(WidthProperty)); Storyboard.SetTargetProperty(_heightAnimation, new PropertyPath(HeightProperty)); ClickMenu.Children.Add(_withAnimation); ClickMenu.Children.Add(_heightAnimation); BeginStoryboard eventStoryboard1 = new BeginStoryboard(); BeginStoryboard eventStoryboard2 = new BeginStoryboard(); eventStoryboard1.Storyboard = ClickMenu; eventStoryboard2.Storyboard = MenuReset; // 이벤트 트리거 EventTrigger eventTrigger = new EventTrigger(MouseEnterEvent); eventTrigger.Actions.Add(eventStoryboard1); EventTrigger eventTrigger2 = new EventTrigger(MouseLeaveEvent); eventTrigger2.Actions.Add(eventStoryboard2); foreach (string s in path) { Image image = new Image { Source = new BitmapImage(new Uri(s, UriKind.RelativeOrAbsolute)), Style = (Style)this.Resources["imageStyle"], // 스타일 적용 Stretch = Stretch.Fill }; // 이벤트 트리거 설정 image.Triggers.Add(eventTrigger); image.Triggers.Add(eventTrigger2); stack.Children.Add(image); } }
// 스토리 보드 생성
'Window > WPF' 카테고리의 다른 글
[ WPF ] 옆으로 흐르는 TextBlock (0) | 2010.03.11 |
---|---|
[ WPF ] Page간 데이터 전달 (0) | 2010.03.06 |
[ WPF ] Canvas Image Background (0) | 2010.02.11 |
[ WPF ] TextBox Select All Text (0) | 2010.02.11 |
[ WPF ] Window 사이즈 변경 시 컨트롤 크기 변경하기 (3) | 2010.02.08 |