.NET 코드 - 창 흔드는 효과
가끔 보면, 윈도우 라이브 메신저의 대화창에서처럼 윈도우를 흔드는 효과(Send a nudge)가 필요하죠.
Pomodoro Timer 프로그램에서도 지정된 시간이 모두 지나고 나면, 창을 흔들어주는 것에 바로 이런 효과가 쓰인 것입니다.
사실, 만들려고 하면 그냥 만들 수 있는데 이런 유의 코드는 왠지 그냥 Copy&Paste 하는 것이 오히려 정석인 것 같은 느낌이 드는데요. ^^
검색을 해보았는데, 생각보다 많지 않았습니다.
우선, 구글 국내 사이트 검색은 "창 흔드는 효과"로 검색하니 자바 스크립트밖에 없었습니다.
흔들거리는 창효과
; http://www.moyiza.com/bbs/view.php?bbid=study_com_tip&no=324&page=49
어쨌든, 외국 사이트에서는 단번에 나오는군요.
Form Shake
; http://bytes.com/topic/visual-basic-net/answers/458390-form-shake
VB 소스이긴 하지만, 약간만 변형하면 C# Windows Form에서도 아래와 같이 가능합니다.
void ShakeMe()
{
Point myLoc = this.Location;
Point myDefaultLoc = this.Location;
for (int i = 0; i < 20; i++)
{
for (int x = 0; x <= 4; x++)
{
switch (x)
{
case 0:
myLoc.X = myDefaultLoc.X + 10;
break;
case 1:
myLoc.X = myDefaultLoc.X - 10;
break;
case 2:
myLoc.Y = myDefaultLoc.Y + 10;
break;
case 3:
myLoc.Y = myDefaultLoc.Y - 10;
break;
case 4:
myLoc = myDefaultLoc;
break;
}
Thread.Sleep(10);
s_ctxThread.Send(new SendOrPostCallback((object target) =>
{
this.Location = myLoc;
}), null);
}
}
}
첨부한 코드는 예제 프로젝트입니다.
[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]