V 1.0 Programozás III. Grafikus felület API-k és összehasonlításuk WPF Hello World Fontosabb UI-elemek UI-elemek tartalommodelljei UI-elemek öröklődési.

Slides:



Advertisements
Hasonló előadás
Grafikus felhasználó felület Windows alatt
Advertisements

A Windows használata Bevezetés.
A Windows grafikus felülete
A Java programozási nyelvSoós Sándor 1/17 Java programozási nyelv 8. rész – Grafikus felhasználói felület Nyugat-Magyarországi Egyetem Faipari Mérnöki.
Számítógépes operációs rendszerek
Verzió 1.1.  Propszt István (csoportfelelős)  Resz János-Antal  Rusz Erzsébet  Varga Anita.
Az operációs rendszer Egy olyan szoftver, ami a számítógépeink használatához nélkülözhetetlen. Főbb feladatai: programok betöltése, futtatása perifériák.
Operációs rendszerek Bevezetés.
Iratkezelő rendszer fejlesztése WPF alapokon
Felhasználó barátság eszközei
Grafika a programban Készítette: Pető László. Bevezetés Valójában nem a célobjektumra rajzolunk, hanem annak festővászon területére (canvas). Csak olyan.
A Windows grafikus felülete
Ember László Damn Small Linux Microsoft VPC környezetben.
Microsoft Windows A Windows fejlődése, általános jellemzése – 2. dia
1. Akciógombok elhelyezése
Célkeresztben az érettségi! A legjobb és leghatékonyabb eszközt akarjuk Kevesebb hibalehetőség, barátságos hibaüzenetek Kiváló fejlesztőeszköz Gyorsan.
Delphi programozás Delphi programozás SRTNB előadás - Borland Delphi – fontosabb komponensek tárgyalása Nagyváradi Anett.
Delphi programozás alapjai Nagyváradi Anett PTE PMMK MIT.
 A felhasználói felület határozza meg az operációs rendszer megjelenését, az asztal felépítését, és azt, hogyan navigálhatunk az operációs rendszer.
Webszerkesztés Űrlapok a HTML-ben. Űrlap létrehozása Űrlapunk tartalma a … elemek között fog helyetfoglalni Egy lapon több űrlap is elhelyezhető Több.
VFP Form programozás Form szerkesztő elemei vezérlő elemek
Microsoft Access Vezérlőelemek.
Microsoft Access Űrlapok tervezése.
V 1.0 ÓE-NIK, Programozás I. A Microsoft Visual Studio 2010 használata.
Objektumorientált tervezés és programozás II. 3. előadás
A program a „Tudáshasznosulást, tudástranszfert segítő eszköz-, és feltételrendszer kialakítása, fejlesztése a Műegyetemen” (TÁMOP /1/KMR )
Vizuális alkalmazások a FoxProban Páll Éva Boglárka.
Űrlapok és keretek.
CSS A CSS bemutatása.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Javascript Microsoft által készített kiegészítése Statikus típusosság Nagy projektek Windows 8 fejlesztésénél WinRT egy részét ebben írták Nyílt forráskódú,
Delphi Készítette: Rummel Szabolcs Elérhetőség:
Készítette: Rummel Szabolcs Elérhetőség:
APEX BMF, II. félév.
Visual Basic 2008 Express Edition
Visual Basic 2008 Express Edition
Verzió 1.1.  Propszt István (csoportfelelős)  Resz János-Antal  Rusz Erzsébet  Varga Anita.
A gyakorlatok munkakörnyezete
Grafikai lehetőségek WPF-ben Egyszerű grafika (Shape-ek)
V 1.0 ÓE-NIK-AII, Programozás I. Karaktersorozatok Feladatok.
V 1.0 Programozás III. További ablakok készítése Továbbított események.
RAD Studio XE5: menük felépítése
Programozás III. Grafikus felület API-k és összehasonlításuk
Webprogramozó tanfolyam Űrlapok (form-ok). Űrlapok a HTML-ben Biztosan mindenki találkozott már vele – Űrlap példapélda Felhasználási lehetőségei – Regisztráció,
Számítógépes grafika I. AUTOCAD alapok
Számítógépes grafika I. AUTOCAD alapok 3. előadás.
Az Office 2007 új grafikus felülete
A Visual Basic és a programozás oktatása
Bevezetés az informatikába 5. előadás
Opencms modul fejlesztés Krizsán Zoltán. Modulok fajtái Nincs előírás, csak tipikus tennivalók: –Content type: új típus(oka)t vezet be. –Template: új.
TÁMOP /1-2F Informatikai gyakorlatok 11. évfolyam Windows Forms alkalmazás készítése Czigléczky Gábor 2009.
V 1.0 OE-NIK, Programozás I. Gyakorlás egydimenziós tömbökkel Többdimenziós tömbök Gyakorló feladatok.
V 1.1 Programozás III. Felhasználóifelület-elemek fontosabb tulajdonságai, eseményei, metódusai XAML alapok.
V 1.0 Programozás III. XML XAML Adatkötés I.. V 1.0ÓE-NIK, 2014 XML (w3schools.com) Hierarchikus adatleíró formátum XML deklarációk + elemek + attribútumok.
V 1.01 Szoftverfejlesztés párhuzamos és elosztott környezetben Generikus típusok Delegáltak Anonim függvények Lambda kifejezések GUI készítése.
V 1.0 Programozás III. Gyakorlás. V 1.0ÓE-NIK, 2014 Gyakorlás –Feladat: Tic Tac Toe játék –Szabályok: A játékosok felváltva teszik le a jelöléseiket.
Az operációs rendszer.
Alkalmazásfejlesztés gyakorlat
Továbbított események További ablakok készítése
Windows Presentation Foundation
Programozás III. Felhasználóifelület-elemek fontosabb tulajdonságai, eseményei, metódusai Preview események.
Programming III. GUI APIs WPF Hello World Important UI elements
ComboBox A listák nagy helyet foglalnak a formokon, és az általuk felkínált elemek nem bővíthetőek a felhasználó által. Ezen problémák megoldására használhatjuk.
Programozás III. MVVM Adatkötés I..
Neumann János Informatikai Kar
Ubuntu – ismerkedés Fájlok és könyvtárak
Adatkötés Sablonokkal
Programozás III. MVVM Adatkötés I..
B M Java Programozás 5. Gy: Java alapok IT A N Adatkezelő 1.rész
Előadás másolata:

V 1.0 Programozás III. Grafikus felület API-k és összehasonlításuk WPF Hello World Fontosabb UI-elemek UI-elemek tartalommodelljei UI-elemek öröklődési lánca

V 1.0ÓE-NIK, 2014 Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő anyag vázlatát képezik. Ismeretük szükséges, de nem elégséges feltétele a sikeres zárthelyinek, illetve vizsgának. Sikeres zárthelyihez, illetve vizsgához a jelen bemutató tartalmán felül a kötelező irodalomként megjelölt anyag, a gyakorlatokon szóban, illetve a táblán átadott tudnivalók ismerete, valamint a gyakorlatokon megoldott példák és az otthoni feldolgozás céljából kiadott feladatok önálló megoldásának képessége is szükséges.

V 1.0ÓE-NIK, 2014 (Csak desktop alkalmazásokhoz alkalmas API-k vannak listázva) Grafikus felület API-k API: Application Programming Interface GUI felületeinket általában nem magunk nulláról programozzuk –A játékok gyakori ellenpélda Felépítésükhöz kívülről biztosított API-kon keresztül elérhetünk kész építőköveket/eszközöket –MFC(Windows/C++) –Windows Forms(Windows/.NET) –Java AWT/Swing(Java) –Cocoa(Mac OS X) –QT(főleg Unixok) –GTK/GTK+(főleg Unixok) –WPF(Windows/.NET) –Windows Runtime (Metro)(Windows/C#, C++) 3

V 1.0ÓE-NIK, 2014 Grafikus felület API-k / Windows Forms.NET 1.0-től (2002) –Gyakorlatilag csak natív Windows API elemekhez biztosít menedzselt hozzáférést. –Windows API: Windows 1.0-tól (1985) Egyszerű, klasszikus kinézetű felületek Funkcionalitás: csak GUI –Ablakok készítése és menedzselése –Ablakok felépítéséhez szükséges komponensek (gombok, szövegdobozok, scrollbar-ok stb.) –Dialógusablakok –Egér és billentyűzet input kezelése –Stb. 4

V 1.0ÓE-NIK, 2014 Grafikus felület API-k / WPF.NET 3.0-tól (2006) Windows Forms lecserélésére szánták –Csak félig sikeres! (2014-es állapot) Grafikus alkalmazások fejlesztésének (szinte) minden aspektusához egységes hozzáférést, logikát biztosít –Felhasználói felület felépítése (mint Windows Forms) –2D grafika –3D grafika –Multimédia/videó –Stb. 5

V 1.0ÓE-NIK, 2014 Grafikus felület API-k / Windows Runtime Metro: design elvek, designnyelv (Metro -> Modern - > Windows Store/Windows 8) Modális, teljes képernyőt elfoglaló, nagyon egyszerű grafikájú felületek –Elsősorban kis képernyőjű, hordozható eszközökön előnyös 6

V 1.0ÓE-NIK, 2014 Windows Forms vs. WPF 7 Windows FormsWPF Egyszerű grafikus alkalmazások készítéséhez „Rich desktop apps” Gazdag grafikájú, multimédiás alkalmazásokhoz Viszonylag kötött bevett megoldások Szinte mindenre többféle megoldás A nagyon alapnál több funkcionalitáshoz már külső könyvtárak igénybevétele szükséges (ezek használatának logikája teljesen eltérő lehet!) Nagyon sok eszközhöz biztosít elérést és egységes logikát Nagyon régi, kiforrott, minden hibája ismert Nemrég még jelentős fejlesztés alatt, hibák megoldására még most is alakulnak a bevett módok Könnyen tanulhatóNehezen tanulható

V 1.0ÓE-NIK, 2014 Melyiket? windows-8/ (2013. február 22.) windows-8/ Jelenleg a WPF a legjobb lehetőségünk asztali fejlesztéshez – WinForms, ha gyors prototipizálás kell, vagy létező projektben, vagy ha a csapat csak azt ismeri 8

V 1.0ÓE-NIK, 2014 Jövő (2014) ? Windows Forms támogatása örökéletűnek várható, de már nem fejlesztik WPF jövője kérdéses, fejlesztése lassú XAML viszont túlél, fejlődik A Microsoftnak a grafikus felület tervezésében tett következő lépésétől függ minden 9

V 1.0ÓE-NIK, 2014 WPF Hello World 10

V 1.0ÓE-NIK, 2014 WPF Hello World 11

V 1.0ÓE-NIK, 2014 WPF Hello World View -> View -> Other Windows -> 12

V 1.0ÓE-NIK, 2014 WPF Hello World Projektbeállítások –Fordítási beállítások –Fordítás előtti és utáni események –Parancssori argumentumok –Felhasználói/alkalmazásszintű beállítások –Stb. Hivatkozások –Keretrendszeri vagy harmadik fél által készített könyvtárakra Alkalmazás fájljai Ablak fájljai 13

V 1.0ÓE-NIK, 2014 App, MainWindow App osztály: –App.xaml.cs + generált bin/obj/App.g.cs = App osztály –A Main függvény alapértelmezésben ide generálódik, benne példányosít egyet ebből az osztályból és megjeleníti a főablakot –Alkalmazásunkat reprezentálja: Current statikus tagban van tárolva egy mindig elérhető példány. Startup, Exit események, Shutdown() függvény a bezáráshoz (App.Current.Shutdown()) MainWindow osztály: –Egy ablakot reprezentál (alapbeállítás szerint ez a „főablak”, de ez módosítható) –MainWindow.xaml.cs + generált bin/obj/MainWindow.g.cs = MainWindow osztály –InitializeComponent() függvény generálódik bele, amiben betölti a XAML fájlt 14

V 1.0ÓE-NIK, 2014 WPF Hello World Felhasználói felület XAML nyelvű leírása és designer 15

V 1.0ÓE-NIK, 2014 WPF Hello World Ablak mögöttes kód (code-behind) fájlja 16

V 1.0ÓE-NIK, 2014 WPF Hello World A kijelölt felhasználóifelületelem-példány tulajdonságai a Properties ablakban szerkeszthetők 17

V 1.0ÓE-NIK, 2014 Toolbox Vezérlők –Felhasználói interakcióhoz Egyszerű grafikai elemek Ablakkereteket kiegészítő elemek –Menü, eszközkészlet, státuszsor… Tartalommenedzserek –Elemek csoportosítására, méretezés kezelésére Stb. 18

V 1.0ÓE-NIK, 2014 Egyszerű vezérlők Button (nyomógomb) –Content tulajdonság tartalmazza a szöveget (?) –Click esemény Label (szöveg) –Content tulajdonság tartalmazza a szöveget(?) CheckBox (jelölőnégyzet) –Content tulajdonság tartalmazza a szöveget (?) –IsChecked tulajdonság tartalmazza, hogy be van-e jelölve –Checked/Unchecked események RadioButton (rádiógomb) –Content tulajdonság tartalmazza a szöveget (?) –GroupName csoportosítja, de enélkül is biztosít a csoportosításra logikát –IsChecked –Checked/Unchecked események 19

V 1.0ÓE-NIK, 2014 Egyszerű vezérlők TextBlock (szöveg II) –Text tulajdonságban van a szöveg TextBox (szövegbeviteli mező) –Text tulajdonságban van a szöveg –TextChanged esemény GroupBox (csoportosító doboz) –Header tartalmazza a fejléc szövegét –Content tulajdonságban van a tartalom Stb. 20

V 1.0ÓE-NIK, 2014 Listavezérlők ListBox (lista) –Items tulajdonság tartalmazza az elemeket –SelectionChanged esemény ComboBox (legördülő lista) –Items tulajdonság tartalmazza az elemeket –SelectionChanged esemény TreeView + TreeViewItem (fanézet) –Items tartalmazza az elemeket Ha TreeViewItem van benne, azon belül is Items tartalmazza az elemeket, Header a szöveget 21

V 1.0ÓE-NIK, 2014 Vezérlők tartalommodelljei ContentControl: –Egyetlen elemet tartalmazhat. (Content tulajdonság) HeaderedContentControl: egy elemet és egy fejlécet tartalmaz. ItemsControl: –Több elemet tartalmazhat. (ItemsSource / Items tulajdonságok) HeaderedItemsControl: több elemet és headereket tartalmaz. 22

V 1.0ÓE-NIK, 2014 UI-elemek öröklési lánca System.Windows.Media.Visual: –Renderelés támogatása, transzformációk, találattesztelés, befoglaló téglalap, koordináta- transzformációk… System.Windows.UIElement: –Input, elrendezés, fókusz támogatása, eseménykezelés System.Windows.FrameworkElement: –Adatkötés (stb.) 23

V 1.0ÓE-NIK, 2014 UI-elemek öröklési lánca System.Windows.Controls.Control: –Vezérlők ősosztálya: főként a vezérlők kinézetének teljes cserélhetőségét támogatja. Alapvető beállítások a vezérlőn (Background, BorderThickness, BorderBrush, FontFamily, FontSize stb), amiket a vezérlő kinézetét meghatározó ControlTemplate használ fel (Template tulajdonság). ControlTemplate hiányában a tulajdonságoknak nincs funkciója! 24

V 1.0ÓE-NIK, 2014 UI-elemek öröklési lánca System.Windows.Controls.ContentControl: –Felhasználóifelület-elemek lehetséges tartalommodelljeinek egyike: egyetlen elemet tartalmazhat (Content tulajdonság). A Content tetszőleges típusú lehet (Object), nagyon sokszor string vagy UIElement-utód. Felhasználóifelület-elemek egymásba építése nagyon gyakori használati mód 25

V 1.0ÓE-NIK, 2014 UI-elemek öröklési lánca ContentControl leszármazottak (nem feltétlenül közvetlen): –Button –CheckBox –Label –RadioButton –… –Window 26

V 1.0ÓE-NIK, 2014 UI-elemek öröklési lánca System.Windows.Controls.ItemsControl: –Felhasználóifelület-elemek lehetséges tartalommodelljeinek egyike: több elemet tartalmazhat (Items, ItemsSource tulajdonság). –Items: ItemCollection típusú – Object elemeket fogad –ItemsSource: IEnumerable Egyszerre csak az egyiket használjuk – ha ItemsSource-ot, akkor az Items fix méretű és read-only lesz. ItemsSource csak akkor használható, ha az Items üres. 27

V 1.0ÓE-NIK, 2014 UI-elemek öröklődési lánca ItemsControl leszármazottak (nem feltétlenül közvetlen): –ComboBox –ListBox –ListView –Menu –TreeView –… 28

V 1.0ÓE-NIK, 2014 Elemek elrendezése HorizontalAlignment –Elem vízszintes rendezése a tartalmazóján belül VerticalAlignment –Elem függőleges rendezése a tartalmazóján belül Margin: távolság az objektum körül Height, Width Ezek a beállítások kölcsönhatásban vannak, együtt alakítják ki az objektum elhelyezkedését (pl. …Alignment+Margin, Height+VerticalAlignment, Width+HorizontalAlignment…) 29

V 1.0ÓE-NIK, 2014 Tartalommenedzserek Céljuk az elemek meghatározott szabályok szerinti elrendezése és átméretezés kezelése – saját grafikus megjelenésük nincs! Grid (elemek rácsszerű elrendezésére) Canvas (elemek adott pixelre való elhelyezésére) DockPanel (igazított elhelyezés) StackPanel (elemek egymás utáni elhelyezése) WrapPanel (elemek egymás utáni elhelyezkedése, lapozással) –Mindegyiknek Children tulajdonsága tartalmazza az elemeket Grid: StackPanel: 30

V 1.0ÓE-NIK, 2014 UI-elemek öröklődési lánca System.Windows.Controls.Panel: –A tartalommenedzserek a Panel osztály utódai –Children: UIElementCollection típusú – UIElement típusú elemeket fogad 31

V 1.0ÓE-NIK, 2014 WPF Hello World II. 32

V 1.0ÓE-NIK, 2014 WPF Hello World II. Eseménykezelés –A vezérlők (később pontosítjuk!) eseményeire való feliratkozást a Properties ablakban (villám ikon) lehet megtenni –Kettős kattintással új eseménykezelő jön létre a code-behind fájlban, és megtörténik a feliratkoztatás az eseményre –Törlés és enter után a feliratkozás törlődik, a létrejött függvény nem! (Kézzel törlendő, ha már nem szükséges.) –Eseménykezelőt hozzárendelni a vezérlőn való kettős kattintással is lehet, ez az ún. alapértelmezett eseményhez rendel eseménykezelőt 33

V 1.0ÓE-NIK, 2014 Feladat 34