안녕하세요? 정진희입니다. 오랫만에 강좌를 쓰게 됩니다.

데스크탑 어플리케이션이나 디자인 된 윈도우 창을 보면 [닫기] [최대화] [최소화]의 모양이 디자인 된 것을 볼 수 있습니다. 이렇게요.

윈도우 창에 쓰는 버튼이 스타일화 된 모습

[닫기]버튼이나 [최소화] 버튼은 클릭되었을 시의 경우의 수만 만들어주면 되기 때문에 버튼으로 제작해도 상관없습니다. 하지만 여기서 문제인 것은 저 최대화 버튼인데요.
최대화를 클릭 하게 되면 이전 크기로 돌아오기 위한 상태의 모양도 만들어 주어야 합니다.

두가지의 경우를 만들어야 하는 [최대화]버튼

이럴 경우에는 버튼 컨트롤을 사용하지 않고 다른 컨트롤을 사용해 주어야 합니다.
바로! Toggle(토글) 버튼입니다.

이번 시간에는 위와 같이 토글 버튼을 제작하고,
최대화 기능코드를 넣는 것 까지 강좌를 통해 알아보도록 하겠습니다.




1) 실버라이트나 WPF 프로젝트 둘 다 토글버튼 컨트롤을 쓰기 때문에 아무 프로젝트를 열어도 상관없습니다만,
위의 예제와 같이 최대화 버튼을 사용하는 프로젝트는 WPF 데스크탑 어플리케이션이기 때문에 WPF로 열어보도록 하겠습니다.

사각형과 패스를 이용해 다음과 같이 최대화에 필요한 요소들을 그려봅니다. 왼쪽부터 배경 / 기존화면으로 / 최대화 를 간단하게 아이콘으로 그려보았습니다. 사각형이 두개 겹친 기존화면 아이콘은 캔버스로 묶어주었습니다.





2) 간단하게 그린 최대화와 기존화면 아이콘을 배경 가운데에 같이 배치해 줍니다. 그리고 이 요소들을 한꺼번에 전체 선택 후 Ctrl+G 단축키를 눌러 그리드 그룹으로 묶어주도록 합니다. 여기까지가 토글버튼을 만들기 위한 준비가 완료되었습니다!






3) 그리드 그룹을 선택한 상황에서 Tools > Make Into Control을 클릭합니다. 




4) 팝업이 뜨며 어떤 컨트롤로 만들 것인지에 대한 설정을 묻게 되는데, 검색창에 토글이라고 검색하면 다음과 같이
토글 버튼 컨트롤이 나타납니다. 선택 후, 컨트롤의 이름을 설정해 주고 확인 버튼을 클릭합니다.




5) 토글 버튼으로 컨트롤이 만들어지며 템플릿안으로 들어와 있는 상태입니다.
여기서 컨텐트 프레젠터라는 레이어는 이 강좌에서 쓰지 않기 때문에 지워주도록 합니다.
States 패널에서 Checked 와 Unchecked 되었을 때가 바로 우리가 하고자 하는 두가지 경우의 상태입니다. 






6) Checked 상태를 클릭하여 녹화화면으로 들어갑니다.
MaxIcon이라 이름 붙인 최대화 아이콘은 Visibility Hidden으로,
NormalIcon
이라 이름 붙인 기존화면 아이콘은 Visible로 설정합니다.
 




7) 이번엔  Unchecked 녹화상태에서 반대로 visibility를 설정합니다.




8) 토글버튼의 상태작업까지 완료를 하였습니다. 템플릿에서 빠져나옵니다.
내가 맞게 했는지 확인하려면 속성에서 기본속성의 IsChecked를 클릭해보면 알 수 있습니다.





9) 이렇게 만든 토글버튼 컨트롤! 이제 실제로 기능을 넣어보도록 하겠습니다.
체크 되었을 시 (Checked) : 창이 최대화 되게
체크가 안되어있을 시 (Unchecked) : 창이 원래 상태로 돌아오게 할텐데요.



토글버튼에 네임을 주고 속성의 이벤트화면으로 전환 후 Checked일 때의 이벤트를 제작하기 위해 더블클릭합니다.



10) 더블클릭하면 화면의 cs파일이 열리게 됩니다. 다음과 같이 코드를 입력해 주도록 합니다.

private void btnMax_Checked(object sender, System.Windows.RoutedEventArgs e)
  {
    this.WindowState = WindowState.Maximized;
  }




11) 마찬가지로 UnChecked되었을 때도 마찬가지로 이벤트에서 더블클릭 한 후에 코드를 입력해주도록 합니다.

 private void btnMax_Unchecked(object sender, System.Windows.RoutedEventArgs e)
  {
   this.WindowState = WindowState.Normal;
   }


12) 빌드하여 실행하면 기능이 제대로 실행되는것을 알 수 있습니다.
참고를 위해 실행 프로그램을 올려드리겠습니다.





그럼 많은 곳에 활용하실 수 있기를 바랍니다! 다음 강좌때 뵙도록 하겠습니다.


저작자 표시 비영리 변경 금지
Posted by 진희쩜넷

Trackback Address :: http://blog.jinhee.net/trackback/195 관련글 쓰기

댓글을 달아 주세요



안녕하세요, 정진희입니다.
이어서 진행하도록 하겠습니다. 이어서 진행하려니 시간이 많이 흘렀네요...:-)
저번시간에는 사전을 만든 후 버튼을 리소스 사전에 저장하고 어떻게 편집하는지에 대해서 알아보았습니다.


저번시간에는 리소스사전을 생성하고, 리소스를 만드는 것을 알아보았습니다.
이번시간에는 다른 프로젝트에 리소스를 활용하는 방법에 대하여 알아보도록 하겠습니다.


7) 새롭게 프로젝트를 생성합니다. 1)번과 같은 방식입니다.




8) 프로젝트 우클릭 > 기존항목 추가를 클릭합니다.
기존항목 추가는 이미 존재하는 파일을 불러들이는데요.
자신이 만들었던 리소스 사전의 위치를 찾아가서 추가를 시키도록 합니다.
리소스 사전이 추가 되었습니다.




9) 다른 페이지에서 한번 버튼을 만들어보고 스타일을 씌워보도록 하겠습니다.
버튼을 생성하고 우클릭 > 템플릿 편집 > 리소스 적용을 합니다.
기본속성으로 리소스 사전을 불러들이면 사전이 바로 연결이 됩니다.


리소스 사전이 연결되지 않으면 다음 화면과 같이 비활성화가 되어있는 것을 보실 수 있습니다.


현재 페이지에서 ① 리소스 패널을 활성화 한 후 > 유저컨트롤 우클릭 > 리소스 사전 연결 > 리소스 이름 선택을 합니다.




10) 다시 버튼의 우클릭을 하면 활성화 되신 것을 보실 수가 있으며 적용이 가능해지는 것을 확인하였습니다.





12) 프로젝트가 크면 클 수록 이렇게 리소스 프로젝트를 따로 만들어 프로젝트로 관리하시는 게 바람직 합니다.
다음과 같이 솔루션에서 프로젝트를 추가합니다. 그리고 마찬가지로 리소스 패널에서 > 리소스 사전 연결을 하여
다른 프로젝트의 사전을 불러들입니다.





이번 강좌에서는 저는 아주 미니멀 하게 하나만 불러들여 오는 것만 해보았습니다.
그럼 도움이 되었길 바랍니다 :-D
파일 첨부하도록 하겠습니다.





저작자 표시 비영리 변경 금지
Posted by 진희쩜넷

Trackback Address :: http://blog.jinhee.net/trackback/110 관련글 쓰기

댓글을 달아 주세요



익스프레션 블랜드 중에서 WPF로 제작한
Button / ComboBox / TextBox / PasswordBox / ListBox / TabControl
Package로 묶어서 올립니다.





저작자 표시 비영리 변경 금지
Posted by 진희쩜넷

Trackback Address :: http://blog.jinhee.net/trackback/134 관련글 쓰기

댓글을 달아 주세요

안녕하세요, 정진희입니다.

이번 강좌는 리소스 사전 (Resource Dictionary) 를 사용하는 방법에 대하여 알아보도록 하겠습니다.
Expression Blend에서 만들 수 있는 WPF와 실버라이트 프로젝트 둘 다 해당되는 내용입니다

지난 버전에는 실버라이트가 리소스 사전이 없었는데 이번에 생겼네요.

들어가기 전에 리소스 사전이란 무엇일까요?
디자이너는 Blend 프로그램을 가지고 컨트롤, 모양, 색상 등을 성심성의껏 만듭니다.
그런데 이렇게 어렵게 만든 컨트롤들을 다른 곳에서도, 혹은 저장을 따로 해놔서 일러스트 파일이나 포토샵 파일처럼 저장해서 갖다 쓰고 싶은 경우가 있을텐데요. 이럴때 쓰는 것이 바로 리소스 사전입니다.

1) 이번 강좌는 WPF이든 Silverlight이든 둘 다 상관은 없습니다.
컨트롤 라이브러리를 생성합니다.



2) 컨트롤 라이브러리로 생성해도 별로 변한 건 없어보입니다.
생성된 xaml파일의 이름만 MainCotrol이네요.


리소스 사전을 프로젝트에 만드는 방법은 다음과 같습니다.
프로젝트를 Right Click > New Item추가를 클릭합니다


창이 뜨면 Resource Dictionary를 선택하고 이름을 임의로 지은 다음 선택을 합니다.
이렇게 리소스 사전이 만들어졌는데요.



2) 버튼을 하나 만들어보도록 하겠습니다.
버튼모양을 할 사각형을 그리고 Tool에서 > Make Into Control을 클릭합니다.
버튼에 대한 강좌는 블로그에 있으니 참고하시길 바랍니다.



3) 이렇게 버튼을 하나 만들 당시에 저장 위치가 3군데가 나오게 됩니다.


① 응용프로그램 (Application)에 저장할 것인가?
② 내 문서에 저장할 것인가?
③ 리소스 사전에 저장할 것인가? (리소스 사전이 프로젝트에 없는 경우 Disable되어 있습니다)

버튼이 꼭 아니더라도 다른 컨트롤들을 만들 때 이렇게 물어봅니다.
버튼이름을 임의로 정하고 리소스 사전에 저장을 하고 클릭을 합니다.


4) 버튼이 리소스 사전으로 저장이 되었습니다. 한번 리소스 사전에서 버튼을 찾아보도록 할까요?
리소스 사전은 블랜드에서 미리보기 지원을 하지 않습니다.
다만 Panel중에 Resource 패널을 활성화 시켜 보시면 방금 만들었던 버튼의 이름이 보여지게 됩니다.



5) Xaml파일에서 보시면 이렇게 보실 수 있습니다. 라이브러리 사전 밑에 버튼 스타일 이름이 보이시죠?


6) 이 리소스를 편집하려면 리소스 패널에서 우측의 버튼같이 생긴 것을 클릭하시면 수정할 수 있습니다.



다음 강좌에서 계속 진행됩니다.




저작자 표시 비영리 변경 금지
Posted by 진희쩜넷

Trackback Address :: http://blog.jinhee.net/trackback/99 관련글 쓰기

댓글을 달아 주세요

  1. 화이트보노 2010/03/14 15:02 Address Modify/Delete Reply

    다음 강좌가 무척 기대되요,, ^^


이어서 진행하도록 하겠습니다.
저번 강좌까지 했던 작업은 메뉴버튼 클릭 시 접혀있던 서브메뉴가 나오도록 하기 위한 형태를 만들었고요.
이번시간에는 State 설정에 Projection 애니메이션을 추가하여 메뉴가 움직이도록 진행해 보겠습니다.

1) 저번시간까지 준비한 작업을 가지고 옵니다. 
① 상태에서 그룹 State를 클릭하여 그룹을 만들고
② 다시 폴더 모양을 클릭하여 그룹안에 State를 두개를 추가합니다
③ 두가지의 상태를 만들어줍니다. 하나는 Menu로 돌아오기 위한 애니메이션과 SubMenu로 가기 위한 애니메이션입니다. 그룹이름은 자신이 임의로 지정해주어도 됩니다. 저는 MenuGroup으로 했습니다.




2) ① SubMenu State을 클릭하고
② 움직일 대상 Stack Panel을 선택한다음
③ 속성에서 Projection의 속성값을 다음과 같이 지정하여 줍니다. 완전히 접혀져 있던 서브가 '0'이라는 값을 주면서 펴지는 것을 녹화를 했습니다. ④번과 같이 보여져야 합니다.
(State에 대한 애니메이션을 더 자세히 알고 싶으시면 예전강좌에 나와있습니다, 참고하시길 바랍니다)


3) 이번에는 btnMenu란 이름을 가지고 있는 메뉴 버튼을 접어줄 차례입니다.
① 마찬가지로 subMenu라는 State에 녹화를 하시고
② 메뉴버튼 레이어 선택 ③ Projection의 Y축 회전값을 지정해 줍니다. 그러면 메뉴가 접혀지는 모습이 보이는데요
아예 안 보일때까지 값을 주도록 합니다. 저는 94.5까지 하니까 아예 안보이게 됩니다.
이렇게 해서 SubMenu의 State를 설정해주었습니다.
다음으로는 이제 돌아가기 위한 State를 설정해주도록 하겠습니다.




4) ① 이번에는 Menu State를 선택하시고, ②메뉴 레이어 버튼을 선택하시고 ③ 회전의 X축을 0->1->0으로 설정값을 찍어주어 오른쪽의 고급속성 박스가 하얗게 나오도록, ④번처럼 키 프레임이 찍히도록 합니다.
이렇게 하는 이유는 키프레임을 찍어주어야 State를 실행하면 돌아오기 때문입니다.



5) 마찬가지로 Stack Panel의 애니메이션도 키 프레임을 남기기 위해 정해주도록 합니다.
화면상에서는 아무런 변화가 없는 것 같지만 키프레임을 찍어줌으로 돌아올 위치를 정해주는 것이기 때문에
Y축 값을 반드시 ③번 처럼 고급속성이 흰색이 칠해지도록 해줍니다.
이렇게 해서 상태는 다 만들었습니다.



6) 상태에서 상태로 바뀔 때 변환 시간과 가,감속의 설정을 하단의 그림처럼 설정해줍니다.
저는 1초동안 State가 변하도록 했고 실버라이트에서만 제공하는 Easing Function을 Circle inout을 설정했습니다.



7) Base를 클릭하여 녹화상태에서 벗어나시고,
btnMenu를 클릭하였을 때와 StackPanel 안의 btnBack 버튼을 클릭하였을때 이벤트가 실행되도록 코드를 작성해줍니다. (State이벤트 강좌 참조하시면 더욱 자세한 설명이 있습니다)


8) 이벤트를 설정해 주시고 다음과 같이 코드를 적어줍니다. btnMenu를 클릭하였을 때는 -> SubMenu State를 걸어야 합니다. Menu State를 걸어주면 아무런 적용이 되지 않을 것입니다.



9) 잘 실행이 되시나요?
하단에 예제로 만든 결과물에 버튼 스타일과 배경색만 넣어서 바꾸어보았습니다.
이렇게 실버라이트에서 Projection이라는 속성 기능을 통해 원근감처럼 보이게 메뉴가 접히는 것을 확인하셨습니다.
그럼 다음강좌때 뵙도록 하겠습니다.




저작자 표시 비영리 변경 금지
Posted by 진희쩜넷

Trackback Address :: http://blog.jinhee.net/trackback/94 관련글 쓰기

댓글을 달아 주세요

  1. 와우! 2010/08/28 03:41 Address Modify/Delete Reply

    안녕하세요. 강좌 잘 봤습니다.
    지금 실버라이트에 관심이 생겨서요 이것저것 자료를 찾고 공부를 하고 있는데요.
    친절한 예제 덕분에 많은걸 배웠습니다. 감사합니다.

  2. 잿투성이 2011/05/23 17:44 Address Modify/Delete Reply

    덕분에 디자인을 하나도 못하는 제가 메뉴버튼을 만들었습니다.
    감사합니다.


안녕하세요, 정진희입니다.
요새는 계속 실버라이트에 대한 강좌를 쓰고있는데요.
같은 익스프레션 블랜드로 작성하지만 WPF랑 실버라이트가
보이는 메뉴얼이 좀 다르다보니 왔다갔다 하니 헷갈리기도 하네요, ㅎㅎ

오늘은 실버라이트에서만 작업할 수 있는 3D 원근감처럼 보이기 위한 속성,
Projection 속성을 가지고 원근감 있는 실버라이트 메뉴를 만들어보도록 하겠습니다.
 
at First, What's mean perspective 3D?
중학교 시절 미술시간에 이런 것 많이 그려봤을 텐데요.
원근감 있는 사각형, 혹은 물체를 그리기 위해 1점 투시, 2점투시, 3점 투시로 하여 밑의 그림처럼 그립니다. 
전 이런 거 디자인 제도 할 때 했었는데요, 제품을 입체적으로 보이기 위해서 이렇게 그리곤 했었습니다.
(잘 못그려서 문제지만)


마찬가지로, Expression Blend 특히 실버라이트에서는 이런 기능을 지원해주고 있습니다.
(WPF 프로젝트에서는 이러한 기능이 없네요.)
마치 종이위에 그리긴 하지만 그럴싸하게 3D 입체처럼 보이기 위한 기능입니다.

구글링을 해서 몇 가지 찾은 예인데요.


조금 다른 적용의 예이지만 멀리서 봤을때 마치 글자가 3D처럼 보이는 효과입니다.
오늘 작업할 예제를 미리 보여드리도록 하겠습니다.

-예제-




1) 먼저 실버라이트 프로젝트를 하나 생성합니다. 실버라이트로 클릭하고, 이름을 준 후 확인버튼을 클릭합니다.




2) 오늘은 실버라이트 메뉴를 만들기로 했으니, 메뉴를 클릭하기 위해서는 버튼으로 작업하는 것이 좋겠죠?
버튼을 하나 추가합니다. 뒤에 배경색은 잘 보이기 위해서 미리 깔아두었습니다.

그리고 추가적으로 메뉴를 클릭하였을 때, 보여지는 서브메뉴 버튼 3개와 서브에서 다시 메뉴로 돌아오기 위한 Back버튼을 하나 만듭니다.





3) 각각 버튼들이 따로따로 있는데요.. 메뉴가 다 같이 움직일 수 있도록 그룹으로 총 두번 묶어 줍니다.
①번처럼 서브 메뉴버튼 4개를 StackPanel의 Orientation을 Vertical로 설정하고 그룹을 지어줍니다.
②번은 서브메뉴를 묶은 StackPanel과 큰 메뉴버튼을 다시 Stack Panel로 묶는데요 이번엔 Orientation을
Horizontal로 설정해줍니다. (그룹묶는 방법은 객체 다중선택 후 우클릭 > 그룹 > Stack Panel)

여기서 좀 정렬이 제대로 안될 경우가 있을텐데요. width/Height, 마진값과 Alignment로 조정하시기 바랍니다.

 


4) 잘 묶으셨나요? 이제 Projection이라는 속성을 가지고 약간 입체적으로 움직이도록 하겠습니다.
서브메뉴들을 묶은 스택패널을 선택하시고 ①속성에서 Alignment를 왼쪽으로 설정하시고,
② 변형에서 Projection의 두번째 탭을 선택하신 후, ③ Y축 값을 1로 설정해줍니다.
방금 한 작업은 회전할 객체의 3D 중심을 잡은 것입니다.



5) ① 첫번째 탭으로 가서 ② Y축의 값을 조절하면 왼쪽 모서리를 중심으로 앞뒤로 움직이는 듯한 모습을 확인할 수 있습니다. 그래서 이 스택패널이 완전히 뒤로 가서 안보이도록 Y축 값을 설정해줍니다.



6) 이번에는 메뉴버튼에 속성을 변경해줍니다.
① Menu버튼 클릭
② HorizontalAlignment를 오른쪽 정렬로 설정하시고
③ Projection의 두번째 탭의 X축 값을 1로 설정합니다.



다음강좌에서 진행하겠습니다.

저작자 표시 비영리 변경 금지
Posted by 진희쩜넷

Trackback Address :: http://blog.jinhee.net/trackback/93 관련글 쓰기

댓글을 달아 주세요

안녕하세요? 정진희 입니다.
홈페이지를 만들다보면 배경음악 깔고 싶을때가 있는데요.
html에서는 embed를 이용해서 간단하게 했었는데,
실버라이트에서는 어떻게 해야할까요? 디자이너분들은 많이 궁금해 하실 것 같은데요. (저만그런가요?-_-a)

이번시간에는 버튼 on/off를 이용하여 on버튼이 클릭이 되었을 때 실행되고 off를 클릭했을 때
실행이 멈추도록 만들어보겠습니다.

1) 익스프레션 블랜드에서 실버라이트 프로젝트로 파일을 하나 만듭니다. 이름은 임의로 정해줍니다.


2. 프로젝트가 생성이 되었습니다.
 Usercontrol의 사이즈를 좀 작게 줄여보도록 하겠습니다.
저는 300x200으로 하겠습니다.


 3. 그리드 레이아웃의 백그라운드를 조금 다르게 바꿔보겠습니다.
그라데이션 브러쉬를 선택하시고
그라데이션 포인트를 하나 추가한 다음 위치를 밑의 그림처럼 배열해 주시기 바랍니다.


4. 재생시킬 음악을 불러와야겠죠? 프로젝트에서 우클릭 하시고 기존항목을 추가합니다.
그래서 자신이 저장한 음악 파일경로를 찾습니다.
아니면 직접 드래그 해서 가져오는 방법도 가능합니다
저는 배경만 있으면 심심할 것 같아서 이미지도 하나 어울리는 것을 추가시켰습니다.



5. 이미지를 가운데 배치 해 놓고 제공하는 버튼을 두개 배치합니다.
버튼 이름에 각 btnOn / btnOff 네임을 주었습니다.


6. 다음은 MediaElement를 Asset library에서 서치한 다음, 더블클릭을 하여 레이어에 추가시킵니다.


7. MediaElement를 추가시켰으면 속성에서 ① 네임을 myMusic 이라 주고,
동영상이 아니기 때문에 ② width값과 Height값을 각각 0으로 줍니다.
③은 화면이 빌드되었을 때 자동으로 플레이 할 것인지 체크하는 것인데요.
저희는 on버튼을 클릭해야 실행되도록 해야하기 때문에 uncheck 해주시길 바랍니다.
④는 소스를 찾는 것인데요
화살표를 클릭하면 현재 프로젝트의 모든 Media가 나오는데, 방금 추가한 음악파일을 선택합니다.


8. 다음으로는 버튼에 각 클릭했을시에 이벤트를 걸어주도록 하겠습니다.
버튼 btnOn을 선택하시고 속성 이벤트 창에 Click 이벤트를 더블클릭하면
이벤트가 생성되면서 cs파일이 열리게 됩니다.


9. 다음과 같이 코드를 적어주시길 바랍니다.
private void btnOn_Click(object sender, System.Windows.RoutedEventArgs e)
  {
   switch (myMusic.CurrentState)
            {
               case MediaElementState.Paused:
               case MediaElementState.Stopped:
               case MediaElementState.Closed:
                    myMusic.Stop();
                    myMusic.Play();
                    break;
            }

10. btnOff 네임을 가진 버튼도 정지 기능을 넣어야겠죠?
마찬가지로 버튼의 이벤트를 생성하신 후 다음과 같이 적어줍니다.

private void btnOff_Click(object sender, System.Windows.RoutedEventArgs e)
  {
   myMusic.Stop();
   }

11. 빌드를 하여 확인합니다 - 잘 되시나요?


음악의 출처는 http://iso50.com/ 입니다

버튼의 스타일 수정 및 visualstategroup의 애니메이션 기능을 추가하여
좀 더 화려하게 플레이어를 만드실 수 있으시리라 생각합니다.

그럼 다음시간때 뵙겠습니다.


저작자 표시 비영리 변경 금지
Posted by 진희쩜넷

Trackback Address :: http://blog.jinhee.net/trackback/89 관련글 쓰기

댓글을 달아 주세요


이어서 진행하도록 하겠습니다.

1.  State를 4개 추가한 상태에서 ① 첫번째 상태를 클릭하여 녹화상태로 합니다.
이미지를 ②처럼 전체 선택 하신다음 Width ③ 값을 0으로 줍니다.
 


2. 이렇게 이미지 4장 모두 width값을 0을 주었는데요.
gotopage1을 클릭할 때 나타나는 이미지는 다시 원래 사이즈로 640 을 입력해 줍니다.



3. 나머지 state에도 같은 방법으로 적용시켜줍니다.
gotoPage2 선택-> 전체 이미지 width사이즈 0 -> 해당 이미지 사이즈(Page2) 다시 640으로 설정
gotoPage3 선택-> 전체 이미지 width사이즈 0 -> 해당 이미지 사이즈(Page3) 다시 640으로 설정
gotoPage4 선택-> 전체 이미지 width사이즈 0 -> 해당 이미지 사이즈(Page4) 다시 640으로 설정

4. state를 다 만들었습니다. 이제 버튼에 VisualStateGroup을 링크 시켜주도록 하겠습니다.
① 처럼 base를 클릭하여 녹화에서 빠져 나온 후, 첫번째로 링크 걸 btn1 버튼을 ② 선택합니다.
그리고 속성에서 ③ 번개버튼이 있는 이벤트 버튼을 선택하면 속성창이 바뀌는데요.
버튼이 클릭되었을 때 상태가 바뀌어야 되기 때문에 Click이벤트를 걸어주도록 합니다. ④번에 마우스를 갖다대고
더블클릭을 하면 이벤트가 생성되며 MainPage.xaml.cs 파일이 열리게 됩니다.



5. 이렇게 cs 파일에 클릭이벤트가 적혀있는데요.
다음과 같이 작성하여 줍니다.

VisualStateManager.GoToState(this,"gotoPage1",true);



6. 다른 버튼들도 마찬가지로 버튼마다 클릭이벤트를 생성하여 적어줍니다.



7. 자 완성되었습니다 :-)
자료를 첨부하도록 하겠습니다


 



저작자 표시 비영리 변경 금지
Posted by 진희쩜넷

Trackback Address :: http://blog.jinhee.net/trackback/87 관련글 쓰기

댓글을 달아 주세요

  1. 안녕^^ 2010/01/13 15:46 Address Modify/Delete Reply

    새로 시작하는 프로젝트에 실버라이트가 들어가 새로 공부를 시작하려고 합니다..
    요거 보고 따라하니까 멋지게 나오네요..
    쉬운 설명에 도움 많이 받고 감니다~~~^^;
    ㅎㅎㅎ정말 실버라이트 최고네요...^^;;


안녕하세요? 정진희 입니다.
이번 시간에는 정~말 오랫만에 실버라이트로 제작을 할까 하는데요.
Visual StateGroup의 기능으로 실버라이트 사진슬라이드 갤러리를 만드는 시간을 가져보도록 하겠습니다.


먼저 예제를 보시고 시작하시길 바랍니다.


1. 포토샵에서 Psd 파일을 만듭니다.
저는 다음과 같이 사진갤러리에 쓸 4장의 사진을 layer에 추가하였습니다. (사이즈는 640x300정도)
그리고 이름을 각각 page1,2,3,4로 지정하고 page라는 이름으로 save하였습니다.



2. Expression 블랜드에서 다음과 같이 실버라이트로 프로젝트를 생성합니다. 이름을 그림과 같이 설정하여 줍니다.
그리고 Usercontrol 을 선택하면 기본적으로 640x480으로 사이즈가 설정되어있는 것을 높이 값을 350으로 설정해줍니다. 사진 갤러리의 사이즈를 지정해주는 작업입니다.



3. File > insert photoshop 파일을 클릭하여 방금 전 자신이 만들었던 파일을 가지고 오면 다음과 같은 팝업이
뜨게 됩니다. 포토샵 파일에서 레이어를 어떻게 가져올 것인지에 대해 묻는 것입니다.
저는 모든 레이어를 가져오도록 선택을 클릭하고 확인버튼을 클릭합니다.



4. 그러면 다음과 같이 화면에 들어온 것을 확인할 수 있습니다. 캔버스 Page에 묶여서 들어왔는데요.
① 처럼 그룹해제를 하시고 ②가 가르키는 Background1을 삭제해주세요.




5. 그룹 해제한 이미지 4장을 선택하시고 Stack Panel로 묶어줍니다.
그리고 Stack panel의 Orientation을 Horizontal로 변경해주세요.



6. 실버라이트로 inport하면서 가로 사이즈가 Auto로 변해 있을 텐데요.
Stack Panel 안에 이미지들을 전부 선택하신다음 , width값을 Auto에서 실제 이미지의 사이즈를 확실히 정해줍니다.
이 작업은 나중에 상태를 바꿔줄 때 쓸 애니메이션을 위한 것입니다.


7. 하단에는 클릭하였을때 각각 해당하는 이미지들이 보여지도록 하는 버튼을 구성합니다.
이미지 갯수에 따라 총 4개로 만들었습니다. 그리고 버튼의 네임을 btn1/btn2/btn3/btn4로 하였습니다.
자, 이제 사진 갤러리를 만들기 위한 요소들은 다 만들어 진 것 같습니다.
이제부터는 버튼을 클릭할때마다 상태가 변하도록 애니메이션을 주도록 하겠습니다.



8. State(상태) 패널에서 VisualStateGroup을 만들도록 하겠습니다.
①을 클릭하여 그룹을 먼저 만듭니다.
그 그룹의 이름을 ②에서 임의대로 지정합니다.
③은 애니메이션의 가/감속을 위한 Easing function을 Circle inout으로 설정을 합니다.
그리고 ④에는 visual StateGroup의 state가 지속되는 시간을 가르킵니다. 저는 여기서 1초를 설정하도록 하겠습니다.



9. 다음으로는 그룹안에 상태를 추가하도록 하겠습니다. ①을 클릭하여 상태를 추가하고, ②에는 상태의 이름을 적어줍니다. 이 이름으로 나중에 코드가 이 상태를 찾아가도록 할 것이기 때문에 기억하시고요~

저희는 상태가 이미지가 클릭 될때마다 바뀌어야 되기 때문에 총 4개의 상태를 만들도록 합니다.  
저는 gotoPage1 / gotoPage2 / gotoPage3 / gotoPage4 이름으로 상태를 만들었습니다.




다음강좌에 이어 진행하도록 하겠습니다.

저작자 표시 비영리 변경 금지
Posted by 진희쩜넷

Trackback Address :: http://blog.jinhee.net/trackback/86 관련글 쓰기

댓글을 달아 주세요

  1. 심안반사식 카메라 2009/11/26 23:03 Address Modify/Delete Reply

    뭔지는 모르겠지만, 좋아보인다.. *=ㅂ=*

    라이트룸도 무거워서 못 깔고 있는 현실이다만..ㅋㅋ




www.opensg.net

처음으로 실버라이트로 홈페이지를 만들어보았습니다.
스토리보드 및 여러개를 개발자에게 요청 및 수정을 부탁하여 만든 것입니다.

회사의 특성상 눈에 보이는 포트폴리오 및 이미지 등이 없어서
어떻게 컨셉을 만들까에 많은 시간이 들어갔네요.

역시 액션스크립트에 대한 신경을 안써서 너무 편했네요


저작자 표시 비영리 변경 금지
Posted by 진희쩜넷

Trackback Address :: http://blog.jinhee.net/trackback/85 관련글 쓰기

댓글을 달아 주세요