정말 오래간만에 포스팅 입니다. 프로젝트 마감 때문에 블로그에 신경을 못쓴거 죄송합니다 ㅠ_ㅜ 이번 시간에는 네이트온이나 MSN등에서 친구가 접속하면 화면 하단에 나타나는 Animation Window를 간단하게 구현해보도록 하겠습니다.
아래는 XAML 코드입니다.
|
<Window x:Class="AnimationWindwo.Window1" |
위 소스코드에서는 노란색으로 칠해진 부분이 중요한 부분인데요, 각각 설명을 해드리겠습니다.
WindowStyle="None"
WindowStyle은 위 그림과 같이 Window의 테두리를 없애는 부분입니다.
ResizeMode="NoResize"
그리고 WindowStyle만 None으로 할 경우 크기를 조절할 수 있는 테두리가 아래 그림과 같이 생기게 되는데 이 부분을 없애기 위해 ResizeMode를 NoResize로 설정합니다.
그리고 실제 Animation고 관련된 부분입니다.
<Storyboard x:Key="Animation">
<DoubleAnimation By="-150" Duration="0:0:0.5" Storyboard.TargetProperty="Top"/>
<DoubleAnimation BeginTime="0:0:2.5" Duration="0:0:0.5" By="150" Storyboard.TargetProperty="Top"/>
</Storyboard>
DoubleAnimation을 사용해서 Top Property를 -150만큼 0.5초 동안 감소 시키고 2.5초 뒤에 다시 150만큼 증가 시킵니다. By Property를 사용했기 때문에 Window가 생성된 위치에서 위쪽으로 이동했다가 2초 뒤 아래로 이동하게 됩니다. 우리가 구현하고자 하는 Window는 회면 오른쪽하단에서 움직임이 발생해야 함으로 화면 해상도에 맞춰 창의 시작 위치를 고정 시켜 줘야 하는데요, 이 부분은 아래와 같이 간단한 C# Code를 조금 추가하여 해결 할 수 있습니다.
void Window1_Loaded(object sender, RoutedEventArgs e)
{
this.Left = System.Windows.SystemParameters.PrimaryScreenWidth - this.Width;
this.Top = System.Windows.SystemParameters.PrimaryScreenHeight;
}
Window객체가 Load되었을 때 SystemParameters Class에서 제공하는 화면의 크기를 사용해 Window의 위치를 조정합니다.
<EventTrigger RoutedEvent="Window.Loaded">
<BeginStoryboard Storyboard="{StaticResource Animation}"/>
</EventTrigger>
마지막으로 Event Trigger를 사용해 Window.Loaded 이벤트가 발생하면 위에서 구현한 StoryBoard를 시작하면됩니다.

