[WP7] Map Window Phone7 2011. 12. 8. 10:19

Bing Map SilverLight는 사용자가 지도와 관련 된 작업을 할 수 있게 해 준다.

Map 컴포넌트를 선택하여 올려서 실행하면 다음과 같이 나온다.

여기에서 해당 위치를 클릭하면 그 위치를 보여준다.

그 전에 사전 작업이 필요하다. Key 발급을 받아야한다.

https://www.bingmapsportal.com/ 이 사이트로 들어가서 계정이 있다면 로그인을 하면 되지만 없다면 생성하면 된다.

만약 로그인이 되어 있다면 계정의 상세 정보를 입력한 뒤, Create Or View Key(좌측 메뉴)를 클릭하고,

발급받은 키를 사용하고자 하는 용도에 맞게 3번째 메뉴 내용에서 선택을 해 준다.

일단 기본적으로 접근 하는 내용은 필자도 여기까지 해 본 실정이다. 나머진 좀 더 공부해서.. 자세히 알아보고 포스팅 해야겠다.. 아시는 분 있다면 댓글이나 정보 공유 부탁 드립니다.

[WP7] ListBox Window Phone7 2011. 12. 8. 09:57
우리가 항상 봐 왔던 그 ListBox와 동일하다. 단 다른 점이 있다면 다른 컴포넌트들도 여기에 포함이 된다.

SelectionMode 에서 선택 방식을 지정 할 수 있다. 하나만 선택 할 것인지 여러개를 선택 할 것인지..

C#에서 쓰던 것과 동일하게 items 속성에서 그 내용을 추가 가능 하며 코드 상에서는

listBox1.Items.Add("1"); 식으로 추가가 가능하다.

XAML 상에서 다른 컴포넌트를 ListBox에 추가 할 경우 아래와 같이 하면 된다.

다음은 그 실행 결과이다.


[WP7] Image Window Phone7 2011. 12. 7. 17:44
C#에서 PictureBox를 이야기 한다.

속성에서 이미지 경로를 지정하여 나타 낼 수 있다.

단 표기 되는 이미지들은 JPEG와 PNG 형식이어야 한다.

물론 여기에 URL을 이용해도 가능하다.

cs 상에서 코드는

Image image = new Image();
Uri uri = new Uri("img/Hello3.jpg", UriKind.Relative);
StreamResourceInfo info = Application.GetResourceStream(uri);
BitmapImage img = new BitmapImage();
img.SetSource(info.Stream);
image.Source = img;
LayoutRoot.Children.Add(image);

이런 식으로 처리 해 주면 화면에서 확인이 가능하다.

다음은 이 코드를 실행 했을 때 화면이다.

[WP7] Grid Window Phone7 2011. 12. 7. 16:54
Grid 는 쉽게 말해서 Grid Layout을 말한다.

여기에서 그리드 컨트롤을 하나 올리고 ColumnDefinitions와 RowDefinitions 속성을 이용하여 원하는

Grid 형태를 그려 낼 수 있다.

다음은 Grid에서 임의로 필자가 마음대로 컨트롤을 올린 모양이다.


cs 코드에서 만약 올리고 싶다면 약간의 제약이 따른 다는 것을 명심 해야한다.

직접적인 UI는 컨트롤러들을 붙이고 하면 되지만, cs 에서는
그리드.Children.Add(컴포넌트);
Grid.SetColumn(컴포넌트, 컬럼위치);
Grid.SetRow(컴포넌트, 로우위치);
규칙을 지켜줘야 한다.


[WP7] CheckBox Window Phone7 2011. 12. 7. 16:16
CheckBox에는 3가지 상태가 존재한다.

Check, UnCheck, Indeterminate 상태가 있다.

처음에 두개는 익숙하게 보이겠지만 세번째의 모습은 일반적인 WinForm 개발자로서는 의아해 할 것이다.

직접 에뮬레이터를 돌려서 체크 단계를 확인을 해 보면 테두리가 생기는 단계가 있는데 그 단계가 나타난다.

그것이 여기에서 말하는 Indeterminate 상태이다.

이벤트를 같이 써야 함으로 CheckBox를 올린디 다중 선택을 하고 이벤트를 한거번에 걸어주고 난 다음

두번째의 CheckBox에만 따로 Indeterminate 이벤트를 먹여준다.

그렇게 하면 쉽게 이해가 갈 것이다 소스 코드추가는 다음과 같다.

위에 사진은 xaml 상에서 나타나는 것으로 아래는 실제 cs 코드이다.

private void checkBox2_Checked(object sender, RoutedEventArgs e)
        {
            CheckBox box = sender as CheckBox;
            if (box.Content.Equals("CheckBox 1"))
            {
                ApplicationTitle.Text = "checkbox 1";
            }
            else
            {
                ApplicationTitle.Text = "checkbox 2";
            }
        }

        private void checkBox2_Unchecked(object sender, RoutedEventArgs e)
        {
            CheckBox box = sender as CheckBox;
            if (box.Content.Equals("CheckBox 1"))
            {
                ApplicationTitle.Text = "checkbox 1";
            }
            else
            {
                ApplicationTitle.Text = "checkbox 2";
            }
        }

        private void checkBox2_Indeterminate(object sender, RoutedEventArgs e)
        {
            CheckBox box = sender as CheckBox;
            PageTitle.Text = "Indeterminate";
        }
이 내용을 실행하면 다음과 같이 나온다.


 

[WP7] Button Window Phone7 2011. 12. 7. 15:40
Button 컴포넌트 역시 C#에서의 컨트롤과 동일하다. 간단히 버튼을 하나 올리고 난 다음 그것을 더블클릭 하면 다음과 같이 나온다.


C#과 동일한 구조임을 확인 할 수가 있다. 이것을 눌렀을 때 이제 기본적으로 생성되어지는 page name을 텍스트로 가지고
있던 PageTitle 내용을 바꿔보면 저기 있는 코드에서
PageTitle.Text = "버튼 이벤트"; 를 추가 해보고 실행 하여 보면,

이와 같이 출력 됨을 확인 할 수가 있다.

[WP7] Border Window Phone7 2011. 12. 7. 15:31

Border는 WinForm의 Panel과 흡사하다.

속성에 보면 BorderThickness 라는 것이 있다. 이것은 Border의 테두리 두께를 조절한다. 이것을 20으로 수정을 하면,


이러한 형태가 나타나며 또한 이 테두리의 모서리를 변화 시키자고 한다면 CornerRadius 내용을 수정하면 된다.


여기에 TextBlock을 올려보면 다음과 같이 나온다. XAML 상에서는 이 컨트롤이 Border 안에 정의되어 있는 것을 확인 할 수 있다.

[WP7] Hello WP7 Window Phone7 2011. 12. 7. 15:21

VS 2010 Windows Phone 실행을 하여 Windows Phone Application 프로젝트를 생성하면 다음과 같은 화면이 뜬다.

여기에서 각기 텍스트는 C#으로 WinForm 프로그램에서 했던 방식과 같이 각 속성의 Text 항목을 수정하면 그것에 맞게 수정이 된다.

Text 항목을 수정하면 아래에 XML 부분에서도 해당하는 Text 항목에서 그 내용이 바뀐 것을 알 수가 있는데 여기서 바꾸어도 전혀 무관하다.

또한 솔루션의 속성에 들어가 보면 배포 형식을 알 수가 있다.

그 형식은 xap 형식으로 다음과 같이 확인 할 수가 있다.