티스토리 뷰

Previous Platforms

Basic sample

kaki104 2012. 1. 7. 01:24
반응형

앞으로 윈폰 망고 버전에 대한 강좌를 올릴려고 한다. 윈도우 폰 교육 과정에서 배웠던 내용들을 기본으로 해서 나름대로 정리하고 설명을 달아서 조금씩 올릴려고 하니, 윈도우폰 엡 개발을 하는데 도움이 되었으면 한다.
우선, 필자가 받은 교육은 KOSTA의 이복영 강사님께 받은 내용임을 미리 밝혀 둔다.

 1. Microsoft.Phone.Tasks Namespace
망고가 공개된 후에 많은 기능들이 추가되었는데...그 중 몇가지 기능에 대해서 간단하게만 알아보도록 하자. 더 자세한 내용은 기본적인 사항은 Microsoft.Phone.Tasks Namespace Windows Phone September 23, 2011
http://msdn.microsoft.com/en-us/library/ff428753(v=VS.92).aspx 
이곳을 참고하면 된다.

아래 몇개의 메뉴가 더 있는데..스크롤을 해야하는 관계로 캡춰를 하지 않았다.

2. MainPage.xaml.cs

using System;
using System.Windows;
using Microsoft.Phone.Controls;
using Microsoft.Phone.Tasks;

namespace demo1
{
    public partial class MainPage : PhoneApplicationPage
    {
        // Constructor
        public MainPage()
        {
            InitializeComponent();
        }

        /// <summary>
        /// Camera Capture 작업
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button1_Click(object sender, RoutedEventArgs e)
        {
            CameraCaptureTask cct = new CameraCaptureTask();
            cct.Show();
            cct.Completed += new EventHandler<PhotoResult>(cct_Completed);
        }

        /// <summary>
        /// 카메라 캡춰 완료 이벤트 처리
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void cct_Completed(object sender, PhotoResult e)
        {
            MessageBox.Show(e.OriginalFileName + ":" + e.ChosenPhoto.Length);
        }

        /// <summary>
        /// 핸드폰 주소록에서 이메일 주소 선택 작업
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button2_Click(object sender, RoutedEventArgs e)
        {
            EmailAddressChooserTask ect = new EmailAddressChooserTask();
            ect.Completed += new EventHandler<EmailResult>(ect_Completed);
            ect.Show();
        }

        /// <summary>
        /// 이메일 주소 선택 작업 완료 이벤트 처리
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public void ect_Completed(object sender, EmailResult e)
        {
            if (e.TaskResult == TaskResult.OK)
            {
                MessageBox.Show(string.Format(e.Email));
            }
        }

        /// <summary>
        /// 미디어플레이어를 이용한 음악 듣기
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button3_Click(object sender, RoutedEventArgs e)
        {
            MediaPlayerLauncher mpl = new MediaPlayerLauncher();
            mpl.Controls = MediaPlaybackControls.All;
            mpl.Location = MediaLocationType.Install;
            mpl.Media = new Uri("files/Kalimba.mp3", UriKind.Relative);
            mpl.Show();
        }

        /// <summary>
        /// 전화하기
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button4_Click(object sender, RoutedEventArgs e)
        {
            PhoneCallTask pct = new PhoneCallTask();

            pct.DisplayName = "kaki104";
            pct.PhoneNumber = "123456789"; //This is a fake number dont call :)
            pct.Show();
        }

        /// <summary>
        /// 전화번호 선택하기
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button5_Click(object sender, RoutedEventArgs e)
        {
            PhoneNumberChooserTask pnct = new PhoneNumberChooserTask();
            pnct.Completed += new EventHandler<PhoneNumberResult>(pnct_Completed);
            pnct.Show();
        }

        /// <summary>
        /// 전화번호 선택 완료 이벤트 처리
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public void pnct_Completed(object sender, PhoneNumberResult e)
        {
            MessageBox.Show(string.Format(e.PhoneNumber));
        }

        /// <summary>
        /// 사진 선택하기
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button6_Click(object sender, RoutedEventArgs e)
        {
            PhotoChooserTask pct = new PhotoChooserTask();
            pct.Completed += new EventHandler<PhotoResult>(photochooser_Completed);
            pct.Show();
        }

        /// <summary>
        /// 사진 선택 완료 이벤트 처리
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public void photochooser_Completed(object sender, PhotoResult e)
        {
            MessageBox.Show(string.Format("Size: " + e.ChosenPhoto.Length + " bytes"));
            MessageBox.Show(string.Format(("File Name: " + e.OriginalFileName)));
        }

        /// <summary>
        /// 검색하기
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button7_Click(object sender, RoutedEventArgs e)
        {
            SearchTask st = new SearchTask();
            st.SearchQuery = "silverlight";
            st.Show();
        }

        /// <summary>
        /// SMS보내기
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button8_Click(object sender, RoutedEventArgs e)
        {
            SmsComposeTask smsct = new SmsComposeTask();
            smsct.Show();
        }

        /// <summary>
        /// 브라우저 열기
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button9_Click(object sender, RoutedEventArgs e)
        {
            WebBrowserTask wbt = new WebBrowserTask();
            wbt.URL = "http://m.naver.com";
            wbt.Show(); 
        }
    }
}

3. 여기에 구현한 기능들은
윈도폰에서 기본으로 제공하는 것들의 사용 방법을 간단하게 본것이다. 이미 알고 있는 분들도 있겠지만.. 처음이니 찬찬히 보면 나중에 프로그램하면서 요긴하게 사용할 만한 기능들도 제법 들어있다. xaml은 첨부된 소스를 참고 하기 바란다.

다음에는 타일 오퍼레이션에 대해서 알아보도록 하겠다.

**
C:\Users\Public\Music\Sample Music\Kalimba.mp3 프로젝트에 셈플mp3파일은 윈도우에서 기본으로 제공하는 파일로서..용량관계로 삭제를 했다. 파일을 복사해서 프로젝트에 붙여 넣기 한 후 프로퍼티를..

Build Action : Content
Copy to Output Directory : Copy if newer
로 설정하면 된다.

강좌1.zip
다운로드


 

반응형

'Previous Platforms' 카테고리의 다른 글

Seoul Bus Info Search App Dev 8  (0) 2012.01.08
Tile Push Notifications Operation  (0) 2012.01.07
Tile create  (0) 2012.01.07
Twitter Client Lecture(강좌 목록) by Silverlight 5  (0) 2012.01.05
[Arg_COMException] error solution: perhaps  (4) 2012.01.04
댓글