이번 시간에 해 볼 내용은 동적으로 컨트를들을 생성하는 작업입니다.




모두 이렇게 아무것도 없는 상태로 프로젝트를 만들어 주시기 바랍니다.
지금부터 아무 것도 없는 화면에서 동적으로 컨트롤들을 생성해서 배치할 것입니다.
즉, 애플리케이션 실행 중에 컨트롤을 만들 것입니다.

가장 단순한 것이 버튼 컨트롤일 것입니다.
동적으로 버튼 컨트롤을 생성하기 위해서는 당연한 얘기지만,
폰 페이지가 생성되는 시점에 컨트롤을 만들어주는 코드를 추가해 주면 됩니다.
*.cs 파일을 열어서 다음과 같이 내용을 추가해 줍니다.




이들은 블렌드 툴에서 컨트롤 속성을 설정하는 부분을,
프로그램 소스 상에서 속성을 제어하는 부분입니다.
속성 정보는 중에 제가 현재 이벤트를 연결한 부분이 있습니다.
pStartCtrl.Click += OnStartButtonClick 와 pEndCtrl.Click += OnEndButtonClick 부분입니다.
이벤트도 코드 상에서 이렇게 연결해 줄 수 있습니다.


현재 예제에서는 간단히 메시지 박스를 출력하는 것은 마무리 했습니다.
대부분의 컨트롤들은 위의 방법과 같이 동적으로 생성해 줄 수 있습니다.
여기까지가 예제 샘플 작업의 끝입니다.^^






그런데 한가지 생소한 부분이 있을 것이라 생각을 합니다.
바로 ContentPanel.Children.Add( XXX ) 부분입니다.
어딘가에 현재 우리가 생성한 컨트롤들을 추가해주고 있습니다.
과연 이 패널은 무엇일까요?

프로그램 작성을 마치고, 다시 디자인 폼 수정 화면으로 돌아옵니다.



위의 화면을 확인해 보실 수 있겠죠?
앞에서 언급한 낯선 이름이 보입니다.
'ContentPanel' 보이시죠?

여기에 버튼을 하나 만들어 봅니다.
이번에는 소스 코드 레벨이 아니라, 디자인 폼 상에서 버튼을 바로 배치해 봅니다.




디자인 폼 상에서 버튼을 배치시키면,
바로 ContentPanel 의 하위 계층에 추가되어지는 것을 확인할 수 있습니다.
즉, 앞선 언급했던 ContentPanel.Children.Add( XXX ) 소스 코드는 바로
이 작업을 해준 것입니다.

조금 더 정확히 얘기하자면,
윈도우폰7의 레이아웃은 크게 TitlePanel과 ContentPanel 로 나눠져 있습니다.
그래서 이들 패널에 컨트롤을 추가했던 것입니다.

패널( Panel )이 무엇인지 모르시겠다구요?
패널은 이후의 시간에 언급될 기회가 있을 것입니다만,
지금은 단순히 컨트롤들을 그룹화 시켜서
자동으로 관리시켜주는 것 정도로 생각하시면 될 것입니다.^^


샘플 파일 첨부해드립니다..^^

신고

WM7 개발에 들어가기전에

Windows Mobile 7 2010.06.28 18:34 Posted by CharSyam

WM7을 제대로 공부할려고 하다보니, 제가 WM7을 제법 잘못 알고 있다는 것을 알게 되었습니다. 그래서 저 같은 분들을 위해서, 실제로 WM7 개발을 시작하기 전에 간단하게 정리를 한번 할려고 합니다.

먼저 설치 환경입니다.

 OS  Windows Vista 이상
 Tools  Visual Studio 2010 express for windows phone CTP
- 기존에 visual Studio 2010 다른 버전을 설치하지 마시길 권장합니다.
 Language  1. Silverlight
2. XNA Framework

 Native는 불가능하고 위의 두 가지를 이용할 수 있습니다. 일반 어플은 Silverlight를 게임은 XNA 플랫폼을 이용할 수 있습니다.(전, Silverlight 닮은 꼴인줄 알았는데 그냥 Silverlight 입니다. 즉, C,C++ Native 개발자보다, Silverlight를 아는 사람이 더 개발에 유리합니다.)
 Hardware Spec  1. 800x480 WVGA
2. 4-point multi-touch screen
3. Direct-X 9 Support
4. A-GPS, accelerometer, compass, light, proximity
   , phone’s location Service, Digital Camera
5. Start, Search, Back Button
6. 3G and Wi-fi
7. over 256MB RAM, over 8GB flash Storage

원래 Windows Moblie 의 특징은 (정확히는 CE지만) 크게 하드웨어의 제약을 주지 않았지만, WM7 부터는 WM7로 인증을 받기 위해서는 하드웨어의 제약이 생겼습니다. 그리고 프로그램 설치도, MS 마켓을 통해서도 개발이 가능합니다.

 이런 부분들이 WM7의 장점이 될지, 단점이 될지는 아직 알 수 없지만, WM7의 기본 UI,UX 나, 개발 환경은 역시 MS 다 라는 생각이 들게 해주는 것 같습니다.

그럼 다음 부터는 실제 WM7 어플을 간단하게 만들어가보도록 하겠습니다. 

신고
TAG WM7