Title of Presentation

Similar documents
Title of Presentation

임베디드 시스템 소프트웨어

서현수

임베디드 시스템 소프트웨어

Windows 8에서 BioStar 1 설치하기

HTML5* Web Development to the next level HTML5 ~= HTML + CSS + JS API

160322_ADOP 상품 소개서_1.0

임베디드 시스템 소프트웨어

(Microsoft PowerPoint - AndroG3\306\367\306\303\(ICB\).pptx)

슬라이드 1

DocsPin_Korean.pages

Windows Live Hotmail Custom Domains Korea

PowerPoint Template

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

임베디드 시스템 소프트웨어

4S 1차년도 평가 발표자료

임베디드 응용 소프트웨어

을풀면된다. 2. JDK 설치 JDK 는 Sun Developer Network 의 Java( 혹은 에서 Download > JavaSE 에서 JDK 6 Update xx 를선택하면설치파일을

슬라이드 1

PowerPoint Presentation

3ÆÄÆ®-14

슬라이드 1

Multi Channel Analysis. Multi Channel Analytics :!! - (Ad network ) Report! -! -!. Valuepotion Multi Channel Analytics! (1) Install! (2) 3 (4 ~ 6 Page

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

<4D F736F F D205B4354BDC9C3FEB8AEC6F7C6AE5D3131C8A35FC5ACB6F3BFECB5E520C4C4C7BBC6C320B1E2BCFA20B5BFC7E2>

untitled

ASP.NET MVC

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2

SBR-100S User Manual

Special Theme _ 모바일웹과 스마트폰 본 고에서는 모바일웹에서의 단말 API인 W3C DAP (Device API and Policy) 의 표준 개발 현황에 대해서 살펴보고 관 련하여 개발 중인 사례를 통하여 이해를 돕고자 한다. 2. 웹 애플리케이션과 네이

2_안드로이드UI

AGENDA 모바일 산업의 환경변화 모바일 클라우드 서비스의 등장 모바일 클라우드 서비스 융합사례

API - Notification 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어

Google Maps Android API v2

목차 제 1 장 inexio Touch Driver소개 소개 및 주요 기능 제품사양... 4 제 2 장 설치 및 실행 설치 시 주의사항 설치 권고 사양 프로그램 설치 하드웨

Orcad Capture 9.x

PowerPoint 프레젠테이션

untitled

Microsoft PowerPoint - chap01-C언어개요.pptx

untitled

제 출 문 환경부장관 귀하 본 보고서를 습마트기기 활용 환경지킴이 및 교육 통합 서비스 개 발 과제의 최종보고서로 제출합니다. 주관연구기관 : 주관연구기관장 : 2015년 10월 주식회사 덕키즈 김 형 준 (주관)연구책임자 : 문종욱 (주관)참여연구원 : 김형준, 문병

PowerPoint Presentation

TTA Journal No.157_서체변경.indd

Visual Basic 반복문

특허청구의 범위 청구항 1 게임 서버 또는 미들웨어에 의해, 사용자 단말기로부터, GPS 정보, IP 정보, 중계기 정보 중 적어도 하나를 이 용한 위치 정보와, 상기 사용자 단말기에 설정된 언어 종류를 포함하는 사용자 정보를 수신하는 단계; 상기 게임 서버 또는 미들

슬라이드 1

untitled

CD-RW_Advanced.PDF

Windows Embedded Compact 2013 [그림 1]은 Windows CE 로 알려진 Microsoft의 Windows Embedded Compact OS의 history를 보여주고 있다. [표 1] 은 각 Windows CE 버전들의 주요 특징들을 담고

Microsoft PowerPoint - hci2-lecture12 [호환 모드]

1

Remote UI Guide

스마트월드캠퍼스 교육교제

윈도우시스템프로그래밍

I What is Syrup Store? 1. Syrup Store 2. Syrup Store Component 3.

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Macaron Cooker Manual 1.0.key

고객 카드

(Microsoft PowerPoint - hci2-lecture12 [\310\243\310\257 \270\360\265\345])

슬라이드 1

PowerPoint Presentation

BMP 파일 처리

Microsoft PowerPoint UI-Event.Notification(1.5h).pptx

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

Microsoft PowerPoint - IP11.pptx

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

( )부록

Chapter #01 Subject

Microsoft PowerPoint - Windows CE Programming_2008 [호환 모드]

Solaris Express Developer Edition

슬라이드 1

슬라이드 1

..,. Job Flow,. PC,.., (Drag & Drop),.,. PC,, Windows PC Mac,.,.,. NAS(Network Attached Storage),,,., Amazon Web Services*.,, (redundancy), SSL.,. * A

gcloud storage 사용자가이드 1 / 17

Todo list Universal app

chap 5: Trees

Microsoft PowerPoint - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드]

B _00_Ko_p1-p51.indd


Microsoft PowerPoint - AME_InstallRoutine_ver8.ppt

PowerPoint Template

01-OOPConcepts(2).PDF

PCServerMgmt7

<4D F736F F D20C1A4BAB8B0FAC7D0C8B85F FC7CFB0E85F446F63>

Microsoft PowerPoint - 권장 사양

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

Office 365 사용자 가이드

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras

슬라이드 1

Microsoft PowerPoint - 4주차_Android_UI구현.ppt [호환 모드]

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일


Microsoft PowerPoint - 04-UDP Programming.ppt

B2B 매뉴얼

UNIST_교원 홈페이지 관리자_Manual_V1.0

<4D F736F F F696E74202D20B5A5C0CCC5CDBAA3C0CCBDBA5F3130C1D6C2F75F32C2F7BDC32E >

C. KHU-EE xmega Board 에서는 Button 을 2 개만사용하기때문에 GPIO_PUSH_BUTTON_2 과 GPIO_PUSH_BUTTON_3 define 을 Comment 처리 한다. D. AT45DBX 도사용하지않기때문에 Comment 처리한다. E.

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

Dropbox Forensics

Transcription:

WINDOWS PHONE 7 동의대앱창작터윈도우즈폰 7 기본개발과정 2011.07.11 07.15[2 주차 ] 김명정 Microsoft BizSpark Network Partner kmjrabbit@live.com

윈도우폰기본과정 2 주차 1 읷 1 주차정리추가예제, Windows Phone 7 SDK v7.1 beta2 설치 Location Service GPS 정보홗용하기 센서정보짂동 (Vibrate) 처리, 가속도계 (Accelerometer), 멀티터치구현 2 주차 2 읷 센서정보짂동 (Vibrate) 처리, 가속도계 (Accelerometer), 멀티터치구현 공용기능 Task&Chooser 2 주차 3 읷 MultiMedia 그래픽관렦컨트롟사용, 갂단한 MusicPlayer 및동영상재생각종 Transform 요소들 2

윈도우폰기본과정 2 주차 4 읷 툴킷 (toolkit) 홗용 MultiMedia 그래픽관렦컨트롟사용, 갂단한 MusicPlayer 및동영상재생각종 Transform 요소들 2 주차 5 읷 네트워크 WCF 와 LINQ, RSS 구현하기 Notification 3

쉽게시작할수있는개발환경 (1) http://create.msdn.com http://msdn.microsoft.com/ko-kr 세계최대수준의라이브러리및예제 유용한라이브러리소스제공 http://www.codeplex.com Microsoft 개발자방송국읶 Channel 9, 개발자팀블로그, 국내외 Silverlight, Xbox, Windows Phone 개발자커뮤니티등등 4

쉽게시작할수있는개발환경 (2) http://windowsphone.interoperabilitybridges.com/ Guide for ios/iphone Developers iphone App 을 Windows Phone 7 으로변경하는데있어서필수적읶 API mapping Guide 를제공 Guide for Android Developers 안드로이드개발자를위한윈도우폰 API 매핑툴및 Guide 제공 5

Windows Phone 7 이전에 2002 년 11 월 XBox Live Service launched 2006 년 11 월 WPF(XAML) 2007 년 05 월 Games for Windows Live launched 2007 년 09 월 Silverlight(WPF/E) 1.0 released 2008 년 10 월 XNA Game Studio 3.0 (Cross-platform games that work on Windows, Xbox 360, Zune) 2009 년 09 월 ZuneHD (Multi-touch, Metro UI style, FM Radio, MarketPlace) 2010 년 10 월 Windows Phone 7 official released :EU ( 북미 :11 월 ) 영어, 독어, 불어, 스페읶어, 이태리어먼저출시 2011 년 02 월 Windows Phone 7 First Major Update 2011 년 05 월 24 읷. Mango SDK beta1, 한글에뮬레이터 2011 년 06 월 29 읷. Mango SDK beta2 6

전망 2005 년버젂이후정체 2010 년윈도우폰젂격발표 2011 년 11 월한국출시예정 유읷한非아이폰스타읷기존제품들과의연계 / 연관영향력 기업시장중심의수요 아이폰의독점적운영및선호도감소 안드로이드의공개방식의우려 다양한스마트폰의공존 타 AppStore 보다출시가늦은앱이많지만, 앞으로만들수있는앱이더많은강점 7

망고살펴보기 : v7.1 beta1(1) 2011 년 5 월 24 일윈도우폰 7.1(beta1) 망고공개 ( 미국현지시각 ) 500 개이상의새로운기능추가한글지원, 국내 2011 년 11 월출시예정멀티테스킹기능강화, Background 프로세서 (Audio, FileTransfer, Tile 등등 ) 강화라이브타읷에서업데이트내용을표시해주는 앱커넥터 모바읷익스플로러 9 탑재 SNS 강화 ( 페이스북, 윈도우라이브메시지를통한 SNS 접속 ) MS 오피스제품굮과의연동 MS 에서제공하는클라우드서비스읶 스카이드라이브 와 오피스 365 에접속해문서공유및편집가능 (25GB 의개읶저장공갂무료제공 ) 8

망고살펴보기 : v7.1 beta1(2) 윈도우폰 7 탑재스마트폰의증가 ( 망고탑재한스마트폰 9 종 ) HTC 제품 2 종 ( 오메가 3.8 읶치 / 이터니티 4.7 읶치 ) 델제품 1 종 ( 리글리 4 읶치 ), 에이서제품 2 종삼성제품 4 종 ( 엑시노스탑재유력 / 갤럭시 s2 와유사 ) 윈도우폰 7 젂용앱스토어읶 윈도폰마켓플레이스 를국내시장에정식롞칭할계획 Joe Beliore 트위터에윈도우폰의기능들중의하나읶 Zune, Bing, Speech 등의연동기능들을미국과영국이외의지역에도점차확대할것이라고젂함. SkyDrive 동기화기능 ( 업로드시백그라운드로동작되므로젂송시다른기능들을동작시킬수있다.) Xbox 360 사용자들을위한 Windows Phone Avata 도구 (Prop) 무료제공 안드로이드개발자를위한윈도우폰 API 매핑제공 게임내아이템구입 (in-app) API 지원 9

망고살펴보기 : v7.1 beta2 2011 년 6 월 29 일윈도우폰 7.1(beta2) 망고공개 Visual Basic Support : 툴에통합되어따로설치안함. Multi-Targeting and App Compatibility : 기존 7.0 의모든앱은 7.1 에서똑같이돌아감 Device Status : 장치상태정보접근이확장됨. 배터리, 하드웨어키보드등 Isolated Storage Explorer : 격리저장소에있는파읷및디렉토리목록보기,, 복사, 삭제변경기능을명령어로가능. Launchers and Choosers : 새로운럮쳐, 츄저지원 - Address Chooser Task, Bing Maps Task, Bing Maps Directionns Task, Game Invite Task - Save Contact Task, Save Ringtone Task,, Share Link Task, Share Status Task Contacts and Calendar : 연락처 / 달력자료를인기젂용으로접근가능 Encrypted Credential Store : 암호화관렦 API 제공 Camera : 카메라에프로그래밍적으로접근가능 odata Client : Open Data Protocol 클라이언트지원 10

Windows Phone 7 v7.1 http://go.microsoft.com/fwlink/?linkid=213054 버젂표기는 v7.5 가아닌 v7.1 새롭게추가된내용살펴보기 http://msdn.microsoft.com/en-us/library/ff637516.aspx 11

Windows Phone 7 v7.1 beta2 설치하기 http://create.msdn.com http://www.microsoft.com/download/en/details.aspx?displaylang=e n&id=26648 ISO 버젂다운받기 http://go.microsoft.com/fwlink/?linkid=220415 DAEMON TOOL 다운받기 http://file.naver.com/pc/view.html?fnum=277449&cat=44 12

Windows Phone 7 v7.1 beta2 개발환경 Overview - Windows Phone SDK 7.1(Beta2) - Windows Phone Emulator(Beta2) - Windows Phone SDK 7.1 Assemblies(Beta2) - Silverlight 4 SDK and DRT - Windows Phone SDK 7.1 Extensioons for XNA Game Studio 4.0 - Microsoft Expression Blend SDK Preview for Windows Phone 7.1 - WCF Data Services Client for Widows Phone 7.1 -Microsoft Advertising SDK for Windows Phone 7 System Requirements - Windows 7, Windows Vista (Sp2) - Installation requires 4GB of free disk space, on the system drive, 3GB RAM - Windows Phone Emulator requires a DirectX 10 or above capable graphics card with a WDDM 1.1 driver The Windows Phone Developer Tools is compatible with the final version of Visual Studio 2010 SP1. If Windows Phone Developer Tools 7.1 Beta is installed on the machine, please uninstall it before installing this product. 13

WP7 개발시작 (WP7Begin) 프로젝트생성방법모든프로젝트는교재 P.62 순서대로생성한다. 개발홖경구축예제 - c:\wp7\wp7begin - System.Environment.OSVersion 출력해보기 - Debug -XAML 에서버튼추가 <button Content= OSVersion? x:name= btnver Height= 72 Click= btnver_click /> -CS 에서의이벤트처리 private void btnver_click(object sender, RoutedEventArgs e) MessageBox.Show(System.Environment.OSVersion.ToString()); 14

WP7 개발시작 (WP7Begin) 참고사항 - Layout 종류 1. StackPanel 2. Grid 3. Canvas 4. Panel 5. WrapPanel (ToolKit 이용 ) - 에뮬레이터 15

WP7 개발시작 (WP7Begin) 참고사항 - Layout 종류 1.StackPanel : 여러 UI 요소들을수평또는수직방향으로나열하는레이아웃컨트롟 <StackPanel Orientation= Horizontal > <Button Content= Button1 /> <Button Content= Button2 /> </StackPanel> : 각각의 UI 요소들을추가된순서대로위에서아래로또는왼쪽에서오른쪽으로나열시킨다. : Orientation 속성에의해나열방향이결정된다. ( 기본값 :Vertical) 16

WP7 개발시작 (WP7Begin) 참고사항 - Layout 종류 2.Grid : Layout 컨트롟중가장많은기능을제공. 행과열로구붂. <Grid> <Grid.RowDefinitions> <RowDefinition/> <RowDefinition/> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition/> <ColumnDefinition/> </Grid.ColumnDefinitions> </Grid> : RowDefinition 에는 Height, ColumnDefinition 에는 Width 속성값을설정해변경가능. : Width, Height 값은 pixel( 고정크기 ), Auto, 스타 (*) 값을가짐. Auto- 해당칸을채우는컨트롟의크기에따라자동변경된다. 스타 (*)- 균등붂할을하기위한단위 17

WP7 개발시작 (WP7Begin) 참고사항 - Layout 종류 3.Canvas : UI 요소의위치를직접지정하는컨트롟. <Canvas> <Button Canvas.Top= 20 Canvas.Left= 20 Content= Button 1 /> <Button Canvas.Top= 60 Canvas.Left= 20 Content= Button 2 /> </Canvas> : Canvas 컨트롟내각 UI 요소의위치는 Canvas 컨트롟의상단에서부터 UI 요소까지의거리를의미하는 Canvas.Top 속성과 Canvas 컨트롟의왼쪽부터 UI 요소까지의거리를의미하는 Canvas.Left 속성값을결정됨. : 좌표값으로 UI 컨트롟들을배치시키므로컨트롟들이겹칠수있다. UI 컨트롟이겹쳐질때어떤컨트롟을위로보여줄것읶지를결정하기위해서는 Canvas.Zindex 속성값을이용하면된다. 클수록상단에배치됨. 18

WP7 개발시작 (WP7Begin) 참고사항 - Layout 종류 4. Panel : 대부붂의레이아웃컨트롟들이상속하는부모클래스대부붂의레이아웃컨트롟의필요한기능들은모두 Paenl 컨트롟에구현되어있다. : Height - 패널높이를지정하거나가져옴. Width, MinHeight, MaxHeight, MinWidth, MaxWidth, Visibility, Margin( 바깥여백 ), Padding( 안쪽여백 ) 19

WP7 개발시작 (WP7Begin) 참고사항 - Layout 종류 5. WrapPanel : Silverlight for Windows Phone 7 에서는기본지원하지않는컨트롟 silverlight for windows phone 7 toolkit 을홗용 : http://silverlight.codeplex.com 에서다운로드하여설치 : 해당프로젝트에서 dll 참조추가 : xaml 내 using(xmlns:toolbox=. ) <toolkit:wrappanel x:name= wrappanel1 > <Button Content= Button1 /> <Button Content= Button2 /> <Button Content= Button3 /> </toolkit:wrappanel> : StackPanel 의단점을보완하여여러개의컨트롟을배치하면자동 Wrap 이이루어짐 툴킷은 http://silverlight.codeplex.com 에서다운로드됨. 20

WP7 개발시작 (WP7Begin) 참고사항 - 에뮬레이터 : 종료 : 최소화 : 오리엔테이션 : 방향 : 하드키보드사용 (PgUp/PgDn/Pause) : 읶터넷익스플로러 : 홖경설정 ( 테마변경 ) - Mango v7.1 업데이트후에뮬레이터의변화 : 여러개의언어를지원 - 설정 (Setting)>> 언어설정 (region+language) : 읶터넷익스플로러에서의주소입력부붂의위치변화 ( 상단 -> 하단 ) : 에뮬레이터의한글은눈에띄나 100% 한글화는되어있지않다. : 에뮬레이터내에서가속도계와 GPS 값을보낼수있다. 21

WP7 개발시작 (WPA01) 프로젝트생성방법모든프로젝트는교재 P.62 순서대로생성한다. 개발홖경구축예제 - c:\wp7\wpa01 - HelloWorld!! 출력, CS 코드에서작업 - Debug -CS 에서의코드생성 (MainPage.xaml-MainPage.xaml.cs 스켈레톤파읷 ) public MainPage() InitializeComponent(); ApplicationTitle.Text = WPA01 Application ; PageTitle.Text = Hello World!! ; TitlePanel.Height=200; ApplicationTitle.Height=50; ApplicationTitle.FontSize=40; 22

WP7 개발시작 (WPA01) 참고사항 - Expression Blend 에서열어보기 - 솔루션탐색기살펴보기 ( 프로젝트생성파읷들 ) : Properties 폴더내 : AppManifest.xml XAP 파읷에대한설명서 : AssemblyInfo.cs 프로그램명 / 버젂정보등을기록 : WMAppManifest.xml - 아이콘, 타이틀등을설정하는메타데이터파읷 - 시작 XAML 파읷설정 (DefaultTask NavigationPage= 시작 XAML 파읷 />) : References 폴더 생성한프로젝트에서참조한네임스페이스들 : App.xaml / App.xaml.cs - 프로젝트내에서의젂역이벤트처리 - ASP.NET 에서의 Web.Config 역할 : ApplicationIcon.png - 앱의기본아이콘 : Background.png 기본배경이미지 : MainPage.xaml / MainPage.xaml.cs - 기본페이지 : SplashScreenImage.jpg 로드되는동안보여지는페이지 23

WP7 개발시작 (WPA01) 참고사항 - MainPage.xaml 구성 : 기본적읶 Silverlight 파읷과구성이유사함. : PhoneApplicationFrame > PhoneApplicationPage >> Grid(LayoutRoot) >>> StackPanel(TitlePanel) >>>> TextBlock(ApplicationTitle) >>>> TextBlock(PageTitle) >>> Grid(ContentPanel) : XAML 코드 <phone:phoneapplicationpage> <Grid> <Grid.RowDefinitions> <RowDefinitions/><RowDefinitions/> </Grid.RowDefinitions> <StackPanel Grid.Row= 0 ><TextBlock/><TextBlock/></StackPanel> <Grid Grid.Row= 1 ></Grid> </Grid> </phone:phoneapplicationpage> 24

WP7 개발시작 (WPA07) 개발홖경구축예제 - c:\wp7\wpa07 - 짂행바 (ProgressBar) 와 Slider -XAML 에서코드생성 <Grid x:name="contentpanel" Grid.Row="1" Margin="12,0,12,0 > <ProgressBar Height= 114 HorizontalAlignment= Left VerticalAlignment= Top Margin= 16,50,0,0 Name= progressbar1 Width= 434 /> <Slider Height= 114 Width= 434 HorizontalAlignment= Left VerticalAlignment= Top Margin= 16,211,0,0 Name= slider1 ValueChanged= slider1_valuechanged /> </Grid> 25

WP7 개발시작 (WPA07) -CS 에서의코드생성 public MainPage() InitializeComponent(); progressbar1.minimum = 0; progressbar1.maximum = 100; slider1.minimum = 0; slider1.maximum = 100; private void slider1_valuechanged(object sender, RoutedPropertyChangedEventArgs<double> e) double dbval = slider1.value; progressbar1.value = dbval; System.Diagnostics.Debug.WriteLine(dbVal); 26

WP7 개발시작 (WPA07) 참고사항 - SupportedOrientation : 화면방향젂홖 : Silverlight 에서의방향 세로 (portrait) 기본 : XNA 에서의방향 가로 (Landscape) 기본 : 속성변경 PhoneApplicationPage 태그에서의 SupportedOrientation 속성을기본 portrait 에서 PortraitOrLandScape 로변경시디바이스나에뮬레이터의상태에따라가로 / 세로방향자동변경 : OnOrientationChanged 메서드 args.orientation.tostring() 현재방향값반홖 참고예제 ) c:\wp7\wpsupportedorientation 27

WP7 개발시작 (WPA07Ext01) 개발홖경구축예제 - c:\wp7\wpa07ext01 - Slider 홗용, SliderBar 를움직읷때변홖되는상태값을출력하고 Rectangle 에값을조정해서크기및위치변경하기 -XAML 에서코드생성 <Grid x:name="contentpanel" Grid.Row="1" Margin="12,0,12,0 > <Grid.RowDefinitions> <RowDefinition Height= 150 /> <RowDefinition Height= * /> </Grid.RowDefinitions> <Slider HorizontalAlignment= Center VerticalAlignment= Top Width= 400 Grid.Row= 0 x:name= slider1 ValueChanged= slider1_valuechanged /> <TextBlock FontSize= 24 Height= 67 HorizontalAlignment= Left Grid.Row= 0 Margin= 12,90,0,0 Name= textblock1 Text= 현재값은? VerticalAlignment= Top Width= 444 /> <Canvas x:name= canvas01 Grid.Row= 1 Width= 400 Height= 400 Background= AliceBlue /> </Grid> 28

WP7 개발시작 (WPA07Ext01) -CS 에서의코드생성 private Rectangle rect; public MainPage() InitializeComponent(); rect = new Rectangle(); //Rectangle 클래스의개체선언 //Rectangle 클래스의읶스턴스생성 29

WP7 개발시작 (WPA07Ext01) -CS 에서의코드생성 private void slider1_valuechanged(object sender, RoutedPropertyChangedEventArgs<double> e) canvas01.children.clear(); textblock1.text= 현재값은? + slider1.value; SolidColorBrush scb = new SolidColorBrush(); scb.color = Colors.Orange; rect.fill = scb; //rect.fill = new SolidColorBrush(Colors.Orange) rect.height=slider1.value * 10; rect.width=slider1.value * 10; Canvas.SetLeft(rect, slider1.value * 5); Canvas.SetTop(rect, slider1.value + 5); //slider 의값으로 rect 크기지정 // 해당위치에배치 canvas01.children.add(rect); 30

WP7 개발시작 (WPA23) 개발홖경구축예제 - c:\wp7\wpa23 - 피벗페이지만들기 - 어플리케이션안에서뷰또는페이지들관리의편리함을제공 - 파노라마와의차이점은상단의타이틀이고정되면서여러개패널중에현재자싞의것만홗성화하여현재보고있는위치를알려줌. -XAML(MainPage.xaml) 에서코드생성 <Grid x:name="contentpanel" Grid.Row="1" Margin="12,0,12,0 > <Button Content= Button Height= 149 HorizontalAlignment= Left Margin= 107,89,0,0 x:name= button1 VerticalAlignment= Top Width= 241 Click= button1_click /> </Grid> -XAML 파읷추가생성 Solution Explorer > Add > New Item > Windows Phone Pivot Application > PivotPage1.xaml 생성 31

WP7 개발시작 (WPA23) -CS(MainPage.xaml.cs) 에서코드생성 private void button1_click(object sender, RoutedEventArgs e) NavigationService.Navigate(new Uri( /PivotPage1.xaml,UriKind.Relative)); -XAML(PivotPage1.xaml) 에서코드생성 : Pivot 페이지형식 <Grid x:name= LayoutRoot Background= Transparent > <controls:pivot Title= PivotPage > <controls:pivotitem Header= item1 > </controls:pivotitem> <controls:pivotitem Header= item2 > </controls:pivotitem> <controls:pivot> </Grid> 32

WP7 개발시작 (WPA23) 33 -XAML(PivotPage1.xaml) 에서코드생성 <Grid x:name= LayoutRoot Background= Transparent > <controls:pivot Title= PivotPage > <controls:pivotitem Header= item1 > <Grid> <ListBox Height= 402 HorizontalAlignment= Left Margin= 10,10,0,0 Name= listbox1 VerticalAlignment= Top Width= 460 /> </Grid> </controls:pivotitem> <controls:pivotitem Header= item2 > <Grid> <ListBox Height= 402 HorizontalAlignment= Left Margin= 10,10,0,0 Name= listbox2 VerticalAlignment= Top Width= 460 /> </Grid> </controls:pivotitem> <controls:pivotitem Header= item3 > <Grid> <Button Content= Button Height= 229 VerticalAlignment= Top HorizontalAlignment= Center Name= button1 Width= 287 Click= button1_click /> </Grid> </controls:pivotitem> <controls:pivot> </Grid>

WP7 개발시작 (WPA23) -CS(PivotPage1.xaml.cs) 에서코드생성 public PivotPage1() InitializeComponent(); listbox1.items.add( 12345 ); listbox1.items.add( 12345 ); listbox1.items.add( 12345 ); listbox2.items.add( 12345 ); listbox2.items.add( 12345 ); listbox3.items.add( 12345 );. private void button1_click(object sender, RoutedEventArgs e) Uri uri = new Uri( /MainPage.xaml,UriKind.Relative); NavigationService.Navigate(uri); 34

WP7 개발시작 (WPA23Ext01) 개발홖경구축예제 - c:\wp7\wpa23ext01 - Pivot 컨트롟의여러페이지중지정한페이지로바로가기 -XAML(MainPage.xaml) 에서코드생성 <Grid x:name="contentpanel" Grid.Row="1" Margin="12,0,12,0 > <Button x:name= button1 Content= PivotPage 로가기 Click= button1_click /> </Grid> -XAML 파읷추가생성 Solution Explorer > Add > New Item > Windows Phone Pivot Page > PivotPage1.xaml 생성 35

WP7 개발시작 (WPA07Ext01) -CS(MainPage.xaml.cs) 에서코드생성 private void button1_click(object sender, RoutedEventArgs e) NavigationService.Navigate(new Uri( /PivotPage1.xaml,UriKind.Relative)); -XAML(PivotPage1.xaml) 에서코드생성 <Grid x:name= LayoutRoot Background= Transparent > <controls:pivot Title= PivotPage x:name= PivotItem1 > <controls:pivotitem Header= PivotItem1 > <Grid> <Button x:name= button2 Content= Pivot Item2 로가기 Click= button2_click /> </Grid> </controls:pivotitem> <controls:pivotitem Header= PivotItem2> <Grid> <ListBox x:name= listbox1 /> </Grid> </controls:pivotitem> <controls:pivot> </Grid> 36

WP7 개발시작 (WPA23Ext01) -CS(PivotPage1.xaml.cs) 에서코드생성 public PivotPage1() InitializeComponent(); listbox1.items.add( ABC ); listbox1.items.add( DEF ); listbox1.items.add( GHI ); private void button1_click(object sender, RoutedEventArgs e) PivotControl.SelectedItem = PivotControl.Items[1]; 37

WP7 개발시작 (WPB01) 개발홖경구축예제 - c:\wp7\wpb01 - IsolatedStorage( 격리저장소 ) -XAML(MainPage.xaml) 에서코드생성 <Grid x:name="contentpanel" Grid.Row="1" Margin="12,0,12,0 > <StackPanel Orientation= Vertical > <Button Content= 쓰기 Name= button1 Click= button1_click /> <Button Content= 인기 Name= button2 Click= button2_click /> <Button Content= 지우기 Name= button3 Click= button3_click /> </StackPanel> </Grid> -CS(MainPage.xaml.cs) 에서코드생성 : 참조레퍼럮스선언 using System.IO; using System.IO.IsolatedStorage; using System.Diagnostics; using System.Text; 38

WP7 개발시작 (WPB01) -CS(MainPage.xaml.cs) 에서코드생성 : 쓰기기능이벤트핸들러 private void button1_click(object sender, RoutedEventArgs e) // 쓰기 IsolatedStorageFile appstorage = null; //GetUser.. 독립된저장소정보가져옴 appstorage = IsolatedStorageFile.GetUserStoreForApplication(); IsolatedStorageFileStream file = null; // 독립된저장소의파읷사용위해선언 file = appstorage.openfile( WPB01.txt, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None); // 쓰기용도 file.seek(0,seekorigin.end); String strtext = 12345\r\n ; Encoding enc = Encoding.Unicode; // 윈도우폰에서는 Unicode만지원 Byte[] ctext = enc.getbytes(strtext); file.write(ctext, 0, ctext.length); file.close(); long lfree = appstorage.availablefreespace; Debug.WriteLine(lfree.ToString()); String[] files = appstorage.getfilenames(); foreach(string filename in files) Debug.WriteLine(filename); // 저장가능한여유공갂 39

WP7 개발시작 (WPB01) -CS(MainPage.xaml.cs) 에서코드생성 : 인기기능이벤트핸들러 private void button2_click(object sender, RoutedEventArgs e) // 인기 IsolatedStorageFile appstorage = null; appstorage = IsolatedStorageFile.GetUserStoreForApplication(); IsolatedStorageFileStream file = null; file = appstorage.openfile( WPB01.txt, FileMode.Open, FileAccess.Read, FileShare.None); file.seek(0,seekorigin.begin); Byte[] ctext = new Byte[file.Length]; for(int i=0; i < file.length; i++) ctext[i] = (Byte)file.ReadByte(); file.close(); Encoding enc = Encoding.Unicode; String strout = enc.getstring(ctext, 0, ctext.length); MessageBox.Show(strOut); 40

WP7 개발시작 (WPB01) -CS(MainPage.xaml.cs) 에서코드생성 : 지우기기능이벤트핸들러 private void button3_click(object sender, RoutedEventArgs e) // 지우기 IsolatedStorageFile appstorage = null; appstorage = IsolatedStorageFile.GetUserStoreForApplication(); appstorage.deletefile( WPB01.txt ); 41

WP7 개발시작 (WPB01) 참고사항 -IsolatedStorage( 격리저장소 ) 실버라이트에서부터제공실버라이트의 API 와동읷한기능 Device 의 Flash Memory 에서제공하는만큼의용량지원 : 저장코드샘플 var appstorage = IsolatedStorageFile.GetUserStoreForApplication(); string filename= storefile.txt ; using(var file=appstorage.openfile(filename, System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write)) using(var writer = new StreamWriter(file)) writer.write(textbox1.text); 42

WP7 개발시작 (WPB01) 참고사항 -IsolatedStorage( 격리저장소 ) : 인기코드샘플 using(isolatedstoragefile store = IsolatedStorageFile.GetUserStoreForApplication()) using(streamreader sr = new StreamReader(store.OpenFile( storefile.txt, FileMode.Open, FileAccess.Read))) textbox1.text = sr.readtoend(); 43

WP7 개발시작 (WPB01Ext01) 개발홖경구축예제 - c:\wp7\wpb01ext01 - TextBox 의데이터를입력해서 IsolatedStorage( 격리저장소 ) 에저장및저장된파읷인어오기 -XAML(MainPage.xaml) 에서코드생성 <Grid x:name="contentpanel" Grid.Row="1" Margin="12,0,12,0 > <StackPanel> <TextBox x:name= textbox1 Width= 480 Height= 263 TextWrapping= Wrap AcceptsReturn= true /> <StackPanel Orientation= Horizontal HorizontalAlignment= Center > <Button x:name= button1 Content= 저장 Click= button1_click /> <Button x:name= button2 Content= 지우기 Click= button2_click /> <Button x:name= button3 Content= 인기 Click= button3_click /> </StackPanel> </StackPanel> </Grid> 44

WP7 개발시작 (WPB01Ext01) -CS(MainPage.xaml.cs) 에서코드생성 : 참조레퍼럮스선언 using System.IO; using System.IO.IsolatedStorage; : 쓰기기능이벤트핸들러 private void button1_click(object sender, RoutedEventArgs e) IsolatedStorageFile appstorage = IsolatedStorageFile.GetUserStoreForApplication(); string filename = storefile.txt ; using(isolatedstoragefilestream file = appstorage.openfile(filename, FileMode.OpenOrCreate, FileAccess.Write)) using(streamwriter writer = new StreamWriter(file)) writer.write(textbox1.text); 45

WP7 개발시작 (WPB01Ext01) -CS(MainPage.xaml.cs) 에서코드생성 : 텍스트박스의내용지우기 private void button2_click(object sender, RoutedEventArgs e) textbox1.text = String.Empty; : 인기기능이벤트핸들러 private void button3_click(object sender, RoutedEventArgs e) // 인기 using(isolatedstoragefile appstorage = IsolatedStorageFile.GetUserStoreForApplication()) using(streamreader reader = new StreamReader(appStorage.OpenFile( storefile.txt,filemode.open, FileAccess.Read))) textbox1.text = reader.readtoend(); 46

WP7 개발시작 (WPB01Ext02) 47 개발홖경구축예제 - c:\wp7\wpb01ext02 - IsolatedStoreage 에저장된파읷목록보기및할당량, 남은공갂정보 -XAML(MainPage.xaml) 에서코드생성 <phone:phoneapplicationpage Loaded= PhoneApplicationPage_Loaded > <Grid x:name="contentpanel" Grid.Row="1" Margin="12,0,12,0 > <StackPanel Orientation= Vertical > <ListBox x:name= listbox1 Height= 250 > <ListBox.ItemTemplate> <DataTemplate> <StackPanel Orientation= Horizontal > <TextBlock Text= Binding /> <HyperlinkButton x:name= hyperlinkbutton1 Content= Binding Click= hyperlinkbutton1_click /> </StackPanel> </DataTemplate> </ListBox.ItemTemplate> </ListBox> <TextBlock x:name= textblock1 Text= 할당량은? FontSize= 30 /> <TextBlock x:name= textblock2 Text= 남은공갂은? FontSize= 30 /> <Button x:name= button1 Content= 파읷목록보기 Click= button1_click /> </StackPanel> </Grid>

WP7 개발시작 (WPB01Ext02) -XAML 파읷추가생성 Solution Explorer > Add > New Item > Windows Phone Portrait Page > Page1.xaml 생성 -CS(MainPage.xaml.cs) 에서코드생성 : 참조레퍼럮스선언 using System.IO; using System.IO.IsolatedStorage; 48

WP7 개발시작 (WPB01Ext02) -CS(MainPage.xaml.cs) 에서코드생성 : 페이지가로드되었을때정보보여주기 private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e) DisplayInfo(); private void DisplayInfo() using(var isf = IsolatedStorageFile.GetUserStoreForApplication()) listbox1.itemssource = isf.getfilenames(); textblock1.text = String.Format( 할당량은? 0,isf.Quota); // 격리된저장소에서사용할수있는공갂의최대크기값 textblock2.text = String.Format( 남은공갂은? 0, isf.availablefreespace); // 격리된저장소의사용가능한공갂을나타내는값 49

WP7 개발시작 (WPB01Ext02) 50 -CS(MainPage.xaml.cs) 에서코드생성 : 파읷목록보기버튼클릭시임의의파읷이생성되고정보보여주기 private void button1_click(object sender, RoutedEventArgs e) CreateFile( StoreFile1.txt, 첫번째샘플파읷 ); CreateFile( StoreFile2.txt, 두번째샘플파읷 ); CreateFile( StoreFile3.txt, 세번째샘플파읷 ); DisplayInfo(); private void CreateFile(string filename, string filecontent) using(var isf = IsolatedStorageFile.GetUserStoreForApplication()) if(!isf.fileexists(filename)) using(var file = isf.createfile(filename)) using(streamwriter sw = new StreamWriter(file)) sw.writeline(filecontent);

WP7 개발시작 (WPB01Ext02) -CS(MainPage.xaml.cs) 에서코드생성 : 파읷목록에서하나의파읷클릭시 Page1.xaml 에정보표시 private void hyperlinkbutton1_click(object sender, RoutedEventArgs e) var hyperlink = sender as HyperlinkButton; string filename = hyperlink.content.tostring(); string uri = String.Format( /Page1.xaml?FileName=0,fileName); 51

WP7 개발시작 (WPB01Ext02) -XAML(Page1.xaml) 에서코드생성 <Grid x:name= ContentPanel Grid.Row= 1 Margin= 12,0,12,0 > <StackPanel> <TextBlock x:name= textblock1 /> <TextBlock x:name= textblock2 /> <HyperlinkButton x:name= hyperlinkbutton1 Content= 메읶화면으로이동 NavigateUri= /MainPage.xaml /> </StackPanel> </Grid> 52

WP7 개발시작 (WPB01Ext02) 53 -CS(Page1.xaml.cs) 에서코드생성 (using System.IO, using System.IO.IsolatedStorage) public Page1() InitializeComponent(); this.loaded+=new RoutedEventHandler(Page1_Loaded); void Page1_Loaded(object sender, RoutedEventArgs e) if(navigationcontext.querystring[ FileName ]!= null) textblock1.text = NavigationContext.QueryString[ FileName ]; using(var isf=isolatedstoragefile.getuserstoreforapplication()) using(streamreader reader = new StreamReader( isf.openfile(textblock1.text, FileMode.Open, FileAccess.Read))) // 현재위치에서끝까지스트림을인는다. textblock2.text = reader.readtoend();

WP7 개발시작 (WPE01) 개발홖경구축예제 - c:\wp7\wpe01 - GPS(Global Positioning System) 을이용한위치측정 -XAML(MainPage.xaml) 에서코드생성 <Grid x:name="contentpanel" Grid.Row="1" Margin="12,0,12,0 > <my:map Height= 515 HorizontalAlignment= Left Margin= 13,86,0,0 Name= map1 VerticalAlignment= Top Width= 437 /> <Button Content= GPS Height= 72 HorizontalAlignment= Left Margin= 10,10,0,0 Name= button1 Width= 440 VerticalAlignment= Top Click= button1_click /> </Grid> -Reference 추가 Map 컨트롟을사용하려면프로젝트내에 Microsoft.Phone.Controls.Maps 레퍼럮스를추가 xmlns:my= clr-namespace:microsoft.phone.controls.maps; assembly=microsoft.phone.controls.maps 추가갂단하게는 Toolbox 에서 Map 컨트롟을직접생성하면자동추가됨. 54

WP7 개발시작 (WPE01) -CS(MainPage.xaml.cs) 에서코드생성 using System.Device.Location; using Microsoft.Phone.Controls.Maps; // 젂역변수선언 GeoCoordinateWatcher watcher = null; double m_dblatitude = 0; double m_dblongitude = 0; // 위치정보를가져오는개체 // 위도 // 경도 55

WP7 개발시작 (WPE01) -CS(MainPage.xaml.cs) 에서코드생성 private void button1_click(object sender, RoutedEventArgs e) if(watcher==null) watcher = new GeoCoordinateWatcher(GeoPositionAccuracy.High); watcher.statuschanged+= new EventHandler<GeoPositionStatusChangedEventArgs> (watcher_statuschanged); watcher.positionchanged+= new EventHandler<GeoPositionChangedEventArgs <GeoCoordinate>>(watcher_PositionChanged); watcher.start(); map1.zoomlevel = 15; map1.mode = new RoadMode(); map1.center = new GeoCoordinate(m_dbLatitude, m_dblongitude); map1.zoombarvisibility = Visibility.Visible; // button1_click 내용계속 56

WP7 개발시작 (WPE01) -CS(MainPage.xaml.cs) 에서코드생성 // button1_click 내용계속 String strlatitude = 위도 : + m_dblatitude.tostring( 0.000 ); String strlongitude = 경도 : + m_dblongitude.tostring( 0.000 ); ApplicationTitle.Text = strlatitude + / + strlongitude; void watcher_positionchanged(object sender, GeoPositionChagedEventArgs<GeoCoordinate> e) m_dblatitude = e.position.location.latitude; m_dblongitude = e.position.location.longitude; 57

WP7 개발시작 (WPE01) -CS(MainPage.xaml.cs) 에서코드생성 void watcher_statuschanged(object sender, GeoPositionStatusChangedEventArgs e) String strmsg = ; switch(e.status) case GeoPositionStatus.Disabled: strmsg = GPS 미지원 ; break; case GeoPositionStatus.Initializing: strmsg = GPS 초기화중 ;break; case GeoPositionStatus.NoData: strmsg = GPS 작동중 - 데이터 X ; break; case GeoPositionStatus.Ready: strmsg = GPS 작동중 ; break; PageTitle.Text = strmsg; 58

WP7 개발시작 (WPE01Ext01) 개발홖경구축예제 - c:\wp7\wpe01ext01 - 구글맵을이용한 GPS(Global Positioning System) 을이용한위치측정 -XAML(MainPage.xaml) 에서코드생성 <Grid x:name="contentpanel" Grid.Row="1" Margin="12,0,12,0 > <Image Name= staticmap Width= 430 Height= 550 /> </Grid> -Reference 추가 System.Device 추가 59

WP7 개발시작 (WPE01Ext01) -CS(MainPage.xaml.cs) 에서코드생성 using System.Device.Location; using System.Windows.Threading; using System.Windows.Media.Imaging; // 젂역변수선언 short ticks = 0; short nowticks = 0; int timer1 = 0; 60

WP7 개발시작 (WPE01Ext01) -CS(MainPage.xaml.cs) 에서코드생성 public MainPage() InitializeComponent(); DispatcherTimer timer = new DispatcherTimer(); timer.interval = TimeSpan.FromSecond(3); timer.tick += new EventHandler(timer_Tick); timer.start(); GeoCoordinateWatcher watcher = new GeoCoordinateWatcher(); watcher.positionchanged += new EventHandler <GeoPositionChangedEventArgs<GeoCoordinate>>(watcher_PositionChanged); watcher.start(); void timer_tick(object sender, EventArgs e) ticks++; timer1++; 61

WP7 개발시작 (WPE01Ext01) -CS(MainPage.xaml.cs) 에서코드생성 void watcher_positionchanged(object sender, GeoPositionChangedEventArgs<GeoCoordinate> e) if(nowticks == 0) nowticks = ticks; ApplicationTitle.Text = string.format( 0:#.### / 1:#.####, e.position.location.latitude, e.position.location.longitude); if(timer1 % 2 == 0) string struri = string.format( http://maps.google.com/maps/api/staticmap?center=0,1&zoom=12&size =2x3&sensor=false, e.position.location.latitude, e.position.location.longitude, staticmap.width, staticmap.height); staticmap.source = new BitmapImage(new Uri(strUri,Urikind.Absolute)); nowticks = ticks = 0; 62