SW 11ch(full permission)


Systemy Wbudowane
Dr inż. Mariusz Fraś
Windows Phone
" Architektura i programowanie aplikacji
W prezentacji wykorzystano ilustracje z witryny msdn.microsoft.com
© maf 1
Å›
Fra
awska
Å‚
Informatyki
Mariusz
Wroc
Instytut
Politechnika
Architektura aplikacji
" Wybrane elementy architektury
Page
" Plik XAML  opis zawartości strony
" Code behind  kod  zachowanie
aplikacji
Event handling
Page navigation
Launchers & choosers
Data binding
Isolated Storage
namespace AddingMachine {
public partial class MainPage : PhoneApplicationPage {
// Constructor
public MainPage() {
InitializeComponent();
}
}
}
© maf 2
Å›
Fra
awska
Å‚
Informatyki
Mariusz
Wroc
Instytut
Politechnika
Architektura aplikacji
" Główne składowe projektu aplikacji
WMAppManifest.xml
" Plik konfiguracyjny całego projektu
" M.in. określa nazwę programu, autora, język i inne dane, definiuje
domyślne funkcje telefonu, zawiera odnośniki do zasobów, itp.
" Generowany automatycznie
© maf 3
Å›
Fra
awska
Å‚
Informatyki
Mariusz
Wroc
Instytut
Politechnika
Architektura aplikacji
" Główne składowe projektu aplikacji
App.xaml
" Głównie do definiowania zasobów
App.xaml.cs  zawiera:
" Jest kontenerem na wszystkie elementy aplikacji
" Zawiera definicjÄ™ przestrzeni nazw (namespace)  jak nazwa projektu
" Klasa App  dziedziczy z klasy
Application należącej do
...
namespace HelloPhone {
Silverlight
...
Wszystkie programy Silverlight
public partial class App : Application {
majÄ… takÄ… klasÄ™ App ...
public App() {
Taka klasa zawiera definicje,
...
//Standard Silverlight initialization
Dla inicjalizacji, uruchomiania
InitializeComponent();
i kończenia programu
// Phone-specific initialization
InitializePhoneApplication();
" Tworzy obiekt typu
}
PhoneApplicationFrame
... } }
© maf 4
Å›
Fra
awska
Å‚
Informatyki
Mariusz
Wroc
Instytut
Politechnika
Architektura aplikacji
" Główne składowe projektu aplikacji
App.xaml - Definiuje przestrzenie nazw i zasoby używane przez
program (schematy kolorów, styli itp.)
Deklaracje przestrzeni nazw
2-ie ogólne Silverlight
Główny znacznik
2-ie Windows Phone
x:Class= HelloPhone.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone">





Launching="Application_Launching" Closing="Application_Closing"
Activated="Application_Activated"
Deactivated="Application_Deactivated"/>


© maf 5
Å›
Fra
awska
Å‚
Informatyki
Mariusz
Wroc
Instytut
Politechnika
Architektura aplikacji
" Page (Strona)
Podstawowy element modelu interfejsu aplikacji
" Wyświetla trwałą zawartość na ekranie
" Aplikacja = kolekcja stron
DefiniujÄ… jÄ…
" MainPage.xaml " MainPage.xaml.cs
" Mogą być różnie realizowane
© maf 6
Å›
Fra
awska
Å‚
Informatyki
Mariusz
Wroc
Instytut
Politechnika
Architektura aplikacji
" MainPage.xaml
© maf 7
Å›
Fra
awska
Å‚
Informatyki
Mariusz
Wroc
Instytut
Politechnika
XAML
© maf 8
Å›
Fra
awska
Å‚
Informatyki
Mariusz
Wroc
Instytut
Politechnika
Model ekranu
" Frame  kontener najwyższego poziomu
Obiekt typu PhoneApplicationFrame
Dla aplikacji tylko jedna
Wspiera własności/funkcje ekranowe takie jak orientację ekranu i
usługę nawigacji pomiędzy stronami (NavigationService)
Może zawierać kontrolki stron Pages oraz Status Bar
i Application Bar
" Page  strona
Kontener na zawartość (elementy)
strony  wypełnia Frame
" Status Bar (System Tray)
Wyświetla systemowe informacje
statusowe
Aplikacja może wpływać na pasek
" Zmieniać wygląd
" Dostarczać zawiadomienia
" Używać wskaznika postępu
(progress indicator)
© maf 9
Å›
Fra
awska
Å‚
Informatyki
Mariusz
Wroc
Instytut
Politechnika
Model ekranu
" Application Bar
Miejsce na typowe funkcje/zadania
Aplikacja może wpływać na wygląd/zawartość
Aplikacja może zawierać menu uruchamiane z tego paska
" dla zadań nietypowych
© maf 10
Å›
Fra
awska
Å‚
Informatyki
Mariusz
Wroc
Instytut
Politechnika
Model ekranu
" Model strony
Strona reprezentuje zawartość na ekranie
" Obiekt typu PhoneApplicationPage
" Może zawierać kontrolki układu
(layout control)
System Tray
" Kontrolka układu  kontener
Application Title
Może zawierać inne kontrolki
Page Name
Do pozycjonowania kontrolek
Nowa aplikacja domyślnie zawiera
Content Area
układ Grid
Nawigowanie miedzy stronami Frame
" Poprzez NavigationService
Orientacja strony
" Portrait
" Landscape left/right
Status Bar i Application Bar pozostajÄ… przy guzikach
left/right względem Status Bar
© maf 11
Å›
Fra
awska
Å‚
Informatyki
Mariusz
Wroc
Instytut
Politechnika
Układy i kontrolki
" Kontrolki
Układy (Layouts)
i grupujÄ…ce
Tekstowe
Guziki i Wyboru
Listy
Przykład opisu w .xaml
VerticalAlignment="Top" Name="firstNumberTextBox" Text="0"
Width="460" TextAlignment="Center"
/>
© maf 12
Å›
Fra
awska
Å‚
Informatyki
Mariusz
Wroc
Instytut
Politechnika
Układy i kontrolki
" Kontrolki
Obrazy, mapy i media
HTML
Postępu i wiadomości
© maf 13
Å›
Fra
awska
Å‚
Informatyki
Mariusz
Wroc
Instytut
Politechnika
Układy i kontrolki
" Układy
Canvas
" Elementy w określonych współrzędnych płótna

Fill="red" Width="200" Height="200" />

StackPanel
" Wyświetla liniowo
Horyzontalnie lub
wertykalnie






© maf 14
Å›
Fra
awska
Å‚
Informatyki
Mariusz
Wroc
Instytut
Politechnika
Układy i kontrolki
" Układy
Grid
" Wyświetla elementy w rzędach i kolumnach