Sunteți pe pagina 1din 26

Windows Phone I

Paul Pocatilu ppaul@ase.ro

Sumar
Prezentare general WP Cerine software Aplicaii Silverlight Crearea interfeei utilizator Navigarea ntre pagini

Windows Phone
Platform standardizat
Hardware
Rezoluie ecran: minim 800 x 480 Butoane (Home, Search, Back, Camera) Camera: rezoluie min. 5 MP Senzori (Accelerometru, A-GPS) Conectitivitate (WiFi/Celular)

Software

Windows Phone

Cerine software
Windows Vista/Windows 7 Windows Phone SDK
Include emulator

Visual Studio Express for Windows Phone/Visual Studio 2010 Microsoft Expression Blend
Interfaa cu utilizatorul

Zune

Versiuni
Windows Phone 7
SDK 7.0

Windows Phone 7.5/Mango


SDK 7.1

Windows Phone 7.5 Refresh/Tango


SDK 7.1.1

Resurse
http://create.msdn.com http://microsoft.com/express http://channel9.msdn.com/ http://www.pluralsighttraining.net/microsoft/

Programarea aplicaiilor
.NET
Limbajul C#/VB.NET

Silverlight
XAML (Extensible Application Markup Language)
Limbaj declarativ

XNA
jocuri

Fara cod nativ

Publicarea aplicaiilor
Cont dezvoltator App Developer Hub
http://create.msdn.com Studeni: www.dreamspark.com

Romnia:
http://appamarket.com

Cerine pentru realizarea aplicaiilor


http://msdn.microsoft.com/enus/library/hh184843(v=VS.92).aspx

Fiiere XAP

Aplicaii Silverlight
Fiiere XAML si fiiere sursa asociate Clasa aplicaie derivata din Application Gestioneaz aspectele specifice, la nivelul aplicaiei

Ciclul de via
Eveniment aplicatie Lansare n execuie (Launching) Stare aplicaia trece n starea n execuie (Running) aplicaia trece din starea n execuie (Running) n starea Terminat (Closed) aplicaia trece din starea n execuie n starea Suspendat (Dormant); sistemul poate trece aplicaia n starea Hibernare (Tombstoned); aplicaia trece din starea Suspendat (Dormant) sau Hibernare (Tombstoned) n starea n execuie (Running).

Terminare (Closing) utilizatorul nchide aplicaia prin apsarea butonului Back din fereastra principal a acesteia Inactiv (Deactivated) este lansat o alt aplicaie, se revine la ecranul de start, se deschide aplicaia de cutare, ecranul se blocheaz etc. Activare (Activated) aplicaia este activat

Proiect Silverlight
App.xaml i App.xaml.cs MainPage.xaml i MainPage.xaml.cs Properties\
AppManifest.xml AssemblyInfo.cs WMAppManifest.xml

Pictograme
ApplicationIcon.png Backgroung.png

Interfaa grafic
Fisiere XAML (Extensible Application Markup Language) + Codul sursa Pagini
Simple Extinse (Panorama) Compuse (Pivot)

Aplicaie
Creai un proiect Silverlight for WP nou
WP Application

Analiza structurii de fiiere a proiectului Analiza fiierelor surs i de configurare Evidenierea evenimentelor din ciclul de viaa a unei aplicaii Necesitatea salvrii strii aplicaiei

Interfaa grafic
Container de pagini (clasa PhoneApplicationFrame)
Include pagina curent, bara de stare, bara de aplicaii Unul pe aplicaie Suport pentru navigarea intre pagini Control: Orientare, dimensiuni

Paginile (clasa PhoneApplicationPage)


Afiate in container Titlu, coninut

Controale
System.Windows.Controls Butoane
Button CheckBox HyperlinkButton RadioButton ListBox PasswordBox TextBlock TextBox

Containere
Border Canvas Grid StackPanel ScrollViewer

Afisare si editare text

Derulare si progres
ProgressBar Slider

Figuri (System.Windows.Shapes)
Ellipse Rectangle

Media
Image MediaElement

Controale
Microsoft.Phone.Controls
Map Pivot
PivotItem

Panorama
PanoramaItem

PhoneApplicationFrame PhoneApplicationPage WebBrowser

Silverlight Toolkit
Spaiul de nume Microsoft.Phone.Controls.Toolkit:
AutoCompleteBox list de selecie care permite selectarea elementelor pe msur ce utilizatorul introduce o secven de caractere; ListPicker list combinat; este afiat doar elementul selectat. LongListSelector list care permite gruparea elementelor; ContextMenu meniu contextual; DatePicker control de selecie a datei; TimePicker control pentru selecia timpului; ToggleSwitch - buton cu dou stri; WrapPanel container care permite poziionarea componentelor unul dup altul, cu trecerea automat pe linia urmtoare.

Interfaa grafic

Tranziia ntre pagini


NavigationService Exemple:
NavigationService.Navigate(
new Uri("/Page1.xaml", UriKind.RelativeOrAbsolute));

NavigationService.GoBack();

Meniuri
Microsoft.Phone.Shell Proprietatea ApplicationBar
IsVisible IsMenuEnabled Colectia Buttons
ApplicationBarIconButton

Colectia MenuItems
ApplicationBarMenuItem

Exemplu meniuri XAML


<phone:PhoneApplicationPage.ApplicationBar> <shell:ApplicationBar IsVisible="True" IsMenuEnabled="True"> <shell:ApplicationBarIconButton IconUri="/AdaugaIcon.png" Text="adauga test" Click="adauga_Click"/> <shell:ApplicationBar.MenuItems> <shell:ApplicationBarMenuItem Text="vezi testele" Click="vizualizeaza_Click"/> <shell:ApplicationBarMenuItem Text="sterge tot" Click="sterge_Click"/> </shell:ApplicationBar.MenuItems> </shell:ApplicationBar> </phone:PhoneApplicationPage.ApplicationBar>

Exemplu meniuri C#
//initializare bara aplicatii ApplicationBar = new ApplicationBar(); ApplicationBar.IsVisible = true; ApplicationBar.IsMenuEnabled = true; ApplicationBarIconButton ab_Adauga = new ApplicationBarIconButton(new Uri("/AdaugaIcon.png", UriKind.Relative)); ab_Adauga.Text = "Adauga test"; ab_Adauga.Click += new EventHandler(adauga_Click); ApplicationBar.Buttons.Add(ab_Adauga); //adaugare optiune meniu ApplicationBarMenuItem mi_Vizualizeaza = new ApplicationBarMenuItem("Vezi testele"); mi_Vizualizeaza.Click += new EventHandler(vizualizeaza_Click); ApplicationBar.MenuItems.Add(mi_Vizualizeaza); //adaugare optiune meniu ApplicationBarMenuItem mi_Sterge = new ApplicationBarMenuItem("Sterge tot"); mi_Sterge.Click += new EventHandler(sterge_Click); ApplicationBar.MenuItems.Add(mi_Sterge);

Tranziia intre pagini


OnNavigatingFrom() apelat nainte de prsirea paginii curente OnNavigateFrom() apelat dup prsirea paginii curente, n momentul n care nu mai este activ OnNavigateTo() apelat dup activarea noii pagini, cea ctre care s-a efectuat tranziia

Aplicaie
Instalai Silverlight Toolkit Creai un proiect Silverlight for WP nou
WP Application

Adugai controale pentru preluarea datelor personale:


Nume si prenume (TextBox) Data nasterii (DatePicker) Sex (Radio Buttons)

Includeti si etichetele corespunzatoare (TextBlock) Iniializarea obiectului asociat se realizeaz in funcia de tratare a evenimentului de selecie a unei opiuni din meniu (din ApplicationBar) sau a unui buton (Button)

Referine
D. Betts et al, Windows Phone 7 Developer Guide: Building connected mobile applications with Microsoft Silverlight, Microsoft, 2010 R. Miles, Windows Phone Programming in C#, www.robmiles.com, 2011 C. Petzold, Programming Windows Phone 7, Microsoft Press, 2010 P. Pocatilu, Programarea dispozitivelor mobile, Editura ASE, 2012 Windows Phone Development, online: msdn.microsoft.com