420 likes | 554 Views
Alkalmazásfejlesztés Windows 8 platformra . Windows Store alkalmazások. Az architektúra. Windows 8 platform. XAML. Asztali. Windows Store (W8 stílusú). DirectX. HTML JavaScript. C C++. C# VB. HTML / CSS. JavaScript. C++. C# VB. WinRT API csoportok. Devices & Printing.
E N D
Alkalmazásfejlesztés Windows 8 platformra Windows Store alkalmazások
Windows 8 platform XAML Asztali Windows Store (W8 stílusú) DirectX HTML JavaScript C C++ C# VB HTML / CSS JavaScript C++ C# VB WinRT API csoportok Devices & Printing Communication & Data Graphics & Media Alkalmazásmodell .NET & SL IE 10 Win32 Windows kernelszolgáltatások
Asztali alkalmazások • .NET 4.5 (C#, VB) • WPF 4.5 • Silverlight5 • XNA • Windows Forms • C/C++ Win32 • Web • HTML, JS • IE 10 • stb... HTA Natív Felügyelt C/C++ runtime WPF, WF, Konzol HTML CSS JavaScript C C++ C# VB IE 10 C/C++ runtime .NET runtime Win32 Windows kernelszolgáltatások
W8 stílusú alkalmazások Alapvető eltérések • Megjelenés, kezelés eltér az asztali alkalmazásoktól • Alapvetően táblagép szemlélet • Egyszerűsített felület, többpontos érintés-ujjmozgatás alapú vezérlés • Szenzorok • „A felhasználó akcióira történő azonnali reagálás”
„Hagyományos” tárolók • Felbontás: 1024x768.. 2560x1440… • Ugyanaz, mint WPF/SL • StackPanel • Grid • Canvas • VirtualizingStackPanel • Mi nincs? • WrapPanel • DockPanel • UniformGrid • De lehet sajátot készíteni: • Panel leszármazott
StackPanel • Elemek egymás alatt vagy mellett • Orientation • Horizontal • Vertical • ItemHeight, ItemWidth: elemek mérete • MaximumRowsOrColumns: max hány sor vagy oszlop lehet az Orientationtól függően (-1: bármennyi – ez a default) • Virtualizált változat: • VirtualizingStackPanel
Grid • Táblázatos megjelenítés • Sorok/oszlopok megadása: • Fix pixel • Auto • Csillag (*) • Gyerekelemek elhelyezése • Grid.Row • Grid.Column • Grid.RowSpan • Grid.ColumnSpan
WrapGrid • Uniform megjelenítés • Nem WrapPanel! • Elemek mérete: • ItemHeight, ItemWidth • Ha nincs beállítva, akkor az első elem mérete alapján • Egyéb tulajdonságok: • MaximumRowsOrColumns • Orientation • Csak listáknál használható • Virtualizált
VariableSizedWrapGrid • Uniform megjelenítés • Elemek mérete: • ItemHeight, ItemWidth • Ha nincs beállítva, akkor az első elem mérete alapján • Különböző elemméretek (attached property) • RowSpan, ColumnSpan • Egyén tulajdonságok: • MaximumRowsOrColumns • Orientation • Csak listáknál használható • Nem virtualizált!
Canvas • Gyerek vezérlők szabadon elhelyezhetők: • Canvas.Left • Canvas.Right • Canvas.Top • Canvas.Bottom
Egyszerű vezérlők Button HyperlinkButton Radio Button ListBox Checkbox Combo Box Progress Ring Progress Bar Toggle Switch Slider
RepeatButton, HyperlinkButton RepeatButton • Nyomvatartásnál folyamatosan küldi a Click eseményeket • Delay [ms] - az első Click utáni várakozás • Interval [ms] – további Click-ek közötti idő HyperlinkButton • NavigateUri – ide navigál, megnyit • Böngészőt • Levelezőprogramot
ToggleSwitch ToggleSwitch • Header • IsOn • OnContent • OffContent • Toggled esemény ToggleButton • IsThreeState • IsChecked vagy események: Checked/Unchecked/Indeterminate
Szöveg beviteli vezérlők Single-Line Text Box PasswordBox Reveal Button Clear Button Rich Edit Box Multi-Line Text Box
Szöveg megjelenítés • Egyszerű szöveg • TextBlock egyszerű formázás: Font, TextAlign, TextWrap, TextTrimming (…), LineHeight, Foreground • TextBox: InputScope • PasswordBox: PasswordChar, IsPasswordRevealButtonEnabled • Formázott szöveg • RichTextBlock, RichTextBlockOverflow • Paragraph, Span, LineBreak, Run, Bold, Italic, InlineUIContainer
Csúszka • Slider • Minimum, Maximum • SmallChange, LargeChange • TickFrequency • TickPlacement: Inline, TopLeft, BottomRight, Outside, None • StepFrequency – milyen részletességgel (felbontással) vehet fel értékeket
Folyamat előrehaladása ProgressBar • IsIndeterminate ProgressRing • IsActive
Parancsok és műveletek Application bar Popup Tooltip Contextmenu Messagedialog
Üzenetablak megjelenítése • Egyszerű üzenetablak Bezár gombbal private asyncvoid ToggleButton_Indeterminate_1(object sender, RoutedEventArgs e) { var md = newMessageDialog("Indeterminate"); awaitmd.ShowAsync(); }
További vezérlők • Frame • Page • UserControl • ViewBox Image Web View ScrollViewer Media Element Scrollbar
Grafikai alakzatok • Path • Line • Polygon • Polyline • Rectangle • Ellipse
Lista vezérlők hierarchiája • ItemsControl leszármazottjai • ItemsSource adatkötés • ItemTemplate/ItemTemplateSelector • Csoportosítás (Group) • ListBox • FlipView • ListView • GridView
Támogatott • Selector • SelectedItem • ListViewBase • Semantic Zoom • Adat virtualizáció • Drag n drop, átrendezés • Gesztusok (swipekiválasztás) • Animációk
FlipView • Oldalra lapozható • Jobbra és balra • Fel és le • Touch • Slide gesztus • Egér • gomb • Ideális: • Képgaléria
Semantic Zoom • „Szemantikus nagyítás” • Csoportosított kollekción • 2 szint • Alapból: ListViewBase, de kiterjeszthető
Nem áll rendelkezésre • DataGrid • TabControl • TreeView • Menu • ContextMenu
async - await SyndicationClientscOlvasó = newSyndicationClient(); // Nem a gyorsítótárból kívánjuk olvasni az adatokat. scOlvasó.BypassCacheOnRetrieve = true; Uri uriRSS= new Uri("http://index.hu/belfold/rss/"); try { // Bejegyzéslista lekérése. SyndicationFeedsfRSS = awaitscOlvasó.RetrieveFeedAsync(uriRSS); // A metódus további része akkor hajtódik végre, amikor a // RetrieveFeedAsync végrehajtódott. var Hírek = sfRSS.Items; cbHírek.ItemsSource= Hírek; cbHírek.DisplayMemberPath= "Title.Text"; cbHírek.IsEnabled= true; } catch {}
Aszinkron hívást végrehajtó metódus • A neve előtt: async • Elnevezési konvenció: …Async(…) vagy …TaskAsync(…) • A visszatérési értéke: • void– ha nem várunk visszatérési értéket, és nem akarjuk tudni, hogy mikor fejeződött be • Task– ha nem várunk visszatérési értéket, de szinkronizálni akarunk hozzá valami más tevékenységet var x= Obj.DoAsync();… // Itt jönnek azok a műveletek amelyek végrehajthatók, … // amíg az aszinkron művelet befejeződikawait x; • Task<T> - T típusú visszatérési értéket várunk SyndicationFeedsf= awaitclient.RetrieveFeedAsync(rss); • Névtelen metódus és lambda kifejezés is lehet async
Támogatott szenzorok 1 • Gyorsulásmérő (Accelerometer) • 3 tengely mentén szöggyorsulás • Iránytű (Compass) • Mágnesen északi irány, valódi északi irány • Giroszkóp (Gyrometer) • Szögsebesség a 3 tengely mentén • Dőlésszögmérő (Inclinometer) • Yaw, pitch, roll szögek a 3 tengely mentén
Támogatott szenzorok 2 • Egyszerű orientáció (Simpleorientation) • Hogy áll az eszköz? • 0 fok, 90 fok, 180 fok, 270 fok, stb… • Pontos orientáció (Orientationsensor) • Pontos helyzet (mátrix vagy kvaternió) • Fényérzékelő (Lightsensor) • Fényerősség Lux-ban
Helymeghatározás • Támogatott módszerek • IP cím • Wi-Fi háromszögelés • GPS • Geolocator osztály • Két pontosság (eltérő költség) • Geoposition: • Geocoordinate: hosszúság, szélesség, magasság,pontosság, sebesség, nézőpont • Address: ország, város, postakód