Bánsághi Anna anna.bansaghi@mamikon.net. 2015 Bánsághi Anna 1 of 31



Hasonló dokumentumok
Programozás BMEKOKAA146. Dr. Bécsi Tamás 8. előadás

Eseményvezérelt és objektumorientált programozás

Bánsághi Anna 2015 Bánsághi Anna 1 of 39

ESEMÉNY VEZÉRELT ALKALMAZÁSOK FEJLESZTÉSE I. Bevezetés. Készítette: Gregorics Tibor

Programozási környezetek

WCF, Entity Framework, ASP.NET, WPF 1. WCF service-t (adatbázissal Entity Framework) 2. ASP.NET kliens 3. WPF kliens

Vizuális és eseményvezérelt programozás , II. félév BMF NIK

Objektumorientált programozás Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

A Microsoft Visual Studio 2005 fejlesztőkörnyezet

A gyakorlat során az alábbi ábrán látható négy entitáshoz kapcsolódó adatbevitelt fogjuk megoldani.

Webes alkalmazások fejlesztése 4. előadás. Megjelenítés és tartalomkezelés (ASP.NET)

A szerzõrõl... xi Bevezetés... xiii

Webes alkalmazások fejlesztése 4. előadás. Megjelenítés és tartalomkezelés (ASP.NET) Cserép Máté.

Segítség a megoldáshoz: 1. Készítse el a Window-t az ábrának és az osztálydiagramnak megfelelően.

A Java nyelv. Dialógus ablakok. Elek Tibor

Bánsághi Anna 2014 Bánsághi Anna 1 of 31

KIRA. KIRA rendszer. Telepítési útmutató v1

Tartalomjegyzék. Előszó... xiii Bevezetés... xv. 1. Ismerkedés a Windows 7-tel Integráció a Windows 7 tálcájával: az alapszolgáltatások...

Webes alkalmazások fejlesztése 12. fejezet. Szolgáltatás alapú kommunikáció (WCF) Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar

Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

Sorosítás (szerializáció) és helyreállítás. 1. Bináris sorosítás és helyreállítás Szükséges névterek Attribútumok. 1.3.

components : IContainer dx : int dy : int tmidőzítő : Timer toolstripseparator1 : ToolStripSeparator tsmikilépés : ToolStripMenuItem

A dokumentáció felépítése

Thermo1 Graph. Felhasználói segédlet

ContractTray program Leírás

A CAPICOM ActiveX komponens telepítésének és használatának leírása Windows7 operációs rendszer és Internet Explorer 8-es verziójú böngésző esetén

Eseményvezérelt alkalmazások fejlesztése II 9. előadás. WPF erőforrások kezelése. Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar

ServiceTray program Leírás

Importálás. más típusú (pl:.imp,.xml,.xkr,.xcz) állomány beimportálása a nyomtatványkitöltő programba

DebitTray program Leírás


Objektumorientált programozás Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

Java programozási nyelv 6. rész Java a gyakorlatban

Windows hálózati adminisztráció segédlet a gyakorlati órákhoz

Java VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás:

OOP: Java 8.Gy: Abstract osztályok, interfészek

Entity Framework alapú adatbáziselérés 2

Programozási nyelvek Java

Már megismert fogalmak áttekintése

Eseményvezérelt alkalmazások fejlesztése II 10. előadás. Window Runtime alapismeretek. Windows Runtime alapismeretek A Windows Runtime

Operációs rendszerek. Tanmenet

A Java EE 5 plattform

Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban

GráfRajz fejlesztői dokumentáció

XML Webszolgáltatás alapú osztott alkalmazás fejlesztése Johanyák Zsolt Csaba 1

Objektumorientált programozás Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

A másolás folyamata. vagy. Xerox WorkCentre 5945/5955 többfunkciós nyomtató. Szolgáltatások kezdőlap. Munkaállapot. Érintőképernyő.

iseries Client Access Express - Mielőtt elkezdi

Web-fejlesztés NGM_IN002_1

Osztálytervezés és implementációs ajánlások

Osztálytervezés és implementációs ajánlások

Bánsághi Anna

Vizuális programozás gyakorlat

Szoftver labor III. Tematika. Gyakorlatok. Dr. Csébfalvi Balázs

Adabáziselérés ODBC-n keresztül utasításokkal C#-ban

Kézikönyv. Szelekciós jegyzék létrehozása

ÁNYK53. Az Általános nyomtatványkitöltő (ÁNYK), a személyi jövedelemadó (SZJA) bevallás és kitöltési útmutató együttes telepítése

Hozzávalók keresése és csatolása

Operációs rendszerek. Az NT folyamatok kezelése

Felhasználói kézikönyv - Android kliens

SSL VPN KAPCSOLAT TELEPÍTÉSI ÚTMUTATÓ

ECDL képzés tematika. Operáció rendszer ECDL tanfolyam

Eseményvezérelt alkalmazások

A P-touch Transfer Manager használata

Az Evolut Főkönyv program telepítési és beállítási útmutatója v2.0

Ugráló gomb oktatási segédlet Ugráló gomb

NETinv. Új generációs informatikai és kommunikációs megoldások

CareLink Personal telepítési útmutató. Első lépések a CareLink Personal adatfeltöltéshez

Objektumorientált paradigma és programfejlesztés Bevezető

Java VI. Miskolci Egyetem Általános Informatikai Tanszék. Utolsó módosítás: Ficsor Lajos. Java VI.: Öröklődés JAVA6 / 1

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

Magyar Nemzeti Bank - Elektronikus Rendszer Hitelesített Adatok Fogadásához ERA. Elektronikus aláírás - felhasználói dokumentáció

Objektumorientált programozás C# nyelven

Tartalomjegyzék. 1. Belépés a vásárolt e-könyvek eléréséhez. 2. A könyvespolc. 3. Az olvasó nézet

Mobil Telefonon Keresztüli Felügyelet Felhasználói Kézikönyv

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban

DOAS-VMI adatok lekérdezése

Image Processor BarCode Service. Felhasználói és üzemeltetői kézikönyv

DKÜ ZRT. A Portál rendszer felületének általános bemutatása. Felhasználói útmutató. Támogatott böngészők. Felületek felépítése. Információs kártyák

C# osztálydeníció. Krizsán Zoltán 1. .net C# technológiák tananyag objektum orientált programozás tananyag

Vizuális és eseményvezérelt programozás , II. félév BMF NIK

A GeoEasy telepítése. Tartalomjegyzék. Hardver, szoftver igények. GeoEasy telepítése. GeoEasy V2.05 Geodéziai Feldolgozó Program

Hallgatói segédlet a tananyag megjelenítéséhez

Java grafikai lehetőségek

Az FMH weboldal megnyitásakor megjelenő angol nyelvű üzenetek eltüntetése

VII. Appletek, grafika

Digitális aláíró program telepítése az ERA rendszeren

Access adatbázis elérése OLE DB-n keresztül

A WorldShip frissítése önálló vagy munkacsoporthoz tartozó munkaállomásra

ArcGIS for Desktop 10.x License Borrowing (kölcsönzés) beállítása

A GeoEasy telepítése. Tartalomjegyzék. Hardver, szoftver igények. GeoEasy telepítése. GeoEasy V2.05+ Geodéziai Feldolgozó Program

Projektmenedzsment tréning

Johanyák Zsolt Csaba: Ugráló gomb oktatási segédlet Copyright 2008 Johanyák Zsolt Csaba

2. modul - Operációs rendszerek

PROJEKTMENEDZSMENT TEMATIKA, KÖVETELMÉNYEK

Bevezető. Servlet alapgondolatok

Webes alkalmazások fejlesztése 10. előadás. Webszolgáltatások tesztelése (ASP.NET Core) Cserép Máté

eszemélyi Kliens Szoftvercsomag

Földmérési és Távérzékelési Intézet

Átírás:

ESEMÉNYVEZÉRELT PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 5. ELŐADÁS - ABLAKOK, ERŐFORRÁSOK 2015 Bánsághi Anna 1 of 31

TEMATIKA I. C# áttekintés II. WPF 2015 Bánsághi Anna 2 of 31

II. WPF 1. WPF alkalmazás fejlesztés 2. Ablakok 3. Erőforrások 2015 Bánsághi Anna 3 of 31

1. ALKALMAZÁS a WPF keretrendszer lehetővé teszi a következő fajta alkalmazások és könyvtárak fejlesztését: több ablakból álló desktop kliens alkalmazások több oldalból álló böngésző alapú alkalmazások egyéni fejlesztésű vezérlő könyvtárak (újrafelhasználható, nem futtatható assembly-k) egyéni fejlesztésű osztálykönyvtárak (újrafelhasználható, nem futtatható assembly-k) 2015 Bánsághi Anna 4 of 31

WPF SZOLGÁLTATÁSOK a fejlesztést számos WPF szolgáltatás teszi lehetővé alkalmazás menedzsment erőforrások, tartalom és adatfájlok kezelése ablakok és dialógus dobozok navigáció 2015 Bánsághi Anna 5 of 31

ALKALMAZÁS MENEDZSMENT az Application osztály számos feladatot lát el: az alkalmazás infrastruktúra létrehozása és kezelése (belépési pont, rendszer és bemenő üzenetek kezelése) az alkalmazás életciklus nyomonkövetése parancssori paraméterek feldolgozása alkalmazás szintű tulajdonságok és erőforrások megosztása kezeletlen kivételek detektálása és feldolgozása ablakok / oldalak és az azok közötti navigáció kezelése kilépési kód visszaadása 2015 Bánsághi Anna 6 of 31

DESKTOP ALKALMAZÁS ÉLETCIKLUSA 2015 Bánsághi Anna 7 of 31

BÖNGÉSZŐ ALKALMAZÁS ÉLETCIKLUSA 2015 Bánsághi Anna 8 of 31

2. ABLAKOK, DIALÓGUS DOBOZOK a felhasználó ablakokon keresztül kommunikál az alkalmazással az alkalmazás tartalma az ablakokban jelenik meg, az alkalmazás funkcionalitása az ablakokon keresztül érhető el a Windows osztály feladatai: ablakok létrehozása és láthatóvá tétele az ablakok közötti tulajdonos / tulajdon reláció kiépítése az ablakok megjelenésének konfigurációja az ablak életciklus nyomonkövetése 2015 Bánsághi Anna 9 of 31

DIALÓGUS DOBOZOK a Window osztály lehetővé teszi speciális ablakok, ún. dialógus dobozok származtatását modal dialógus dobozok felhasználói beavatkozás után engedik a programot tovább futni, általában OK és Cancel gombokkal modeless dialógus dobozok nem állítják meg a program futását, hanem megengedik más ablakokon a felhasználói tevékenységek végrehajtását 2015 Bánsághi Anna 10 of 31

ABLAKOK JELLEMZŐI - WINDOW CLASS az ablakokban megjelenő tartalom függ az alkalmazás által kezelt adatoktól, ami lehet például média, XAML oldal, web oldal, dokumentum, adatbázis elem, rendszer információ 2015 Bánsághi Anna 11 of 31

nem-kliens terület részek ABLAK TERÜLETEK a WPF által implementált általános ablak kliens terület a fejlesztő által használható terület az alkalmazás specifikus tartalom megjelenítésére 2015 Bánsághi Anna 12 of 31

MARKUP ELEMEK INICIALIZÁLÁSA az InitializeComponent metódust a markup-beli részleges osztály implementálja, és a markup-ban definiált tulajdonságok beállítása és események regisztrálása történik namespace Nevter { public partial class Ablak : Window { public Ablak { InitializeComponent(); } } } 2015 Bánsághi Anna 13 of 31

ABLAK ÉLETCIKLUSA megnyitás aktiválás bezárás 2015 Bánsághi Anna 14 of 31

ABLAKOK MEGNYITÁSA <Application x:class ="Nevter.Alkalmazas" xmlns ="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x ="http://schemas.microsoft.com/winfx/2006/xaml" Startup ="app_startup"> <!-- az alkalmazás Startup eseménye bekövetkezésekor nyílik meg az ablak -->... </Application> namespace Nevter { public partial class Alkalmazas : Application { void app_startup( object sender, StartupEventArgs e ) { // az első példányosított ablak lesz az alkalmazás főablaka (MainWindow) var foablak = new Ablak(); } } } // ablak megnyitása modeless módban foablak.show(); 2015 Bánsághi Anna 15 of 31

AUTOMATIKUS FŐABLAK SPECIFIKÁLÁS <Application x:class ="Nevter.Alkalmazas" xmlns ="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x ="http://schemas.microsoft.com/winfx/2006/xaml" StartupUri ="Ablak.xaml"> <!-- az alkalmazás StartupUri tulajdonsága tartalmazza a modeless módban megnyitandó főablak markup-ját -->... </Application> namespace Nevter { public partial class Alkalmazas : Application {} } 2015 Bánsághi Anna 16 of 31

ABLAKOK TULAJDONJOGAI két ablak között nincs kapcsolat, hacsak azt külön meg nem adjuk az egymással összehangoltan működő ablakok között beállítható egy tulajdonjogi viszony namespace Nevter { public partial class Ablak : Window { public Ablak { InitializeComponent(); } } } var tulajdonbanlevoablak = new Window(); tulajdonbanlevoablak.owner = this; // ezen ablak objektum a tulajdonos tulajdonbanlevoablak.show(); 2015 Bánsághi Anna 17 of 31

ABLAKOK AKTIVÁLÁSA egy alkalmazásban egyszerre egy ablak lehet aktív aktiválás az ablak első megnyitásakor aktív ablakká válik, felfogja a felhasználói bemeneteket, kiváltja az Activated eseményt deaktiválás egy másik ablak aktiválásakor az addig aktív ablak deaktívvá válik, és kiváltja a Deactivated eseményt, miközben az új aktív ablak az Activated eseményt egy deaktivált ablak is futtathat kódot, sőt, néha kifejezetten erre van szükség 2015 Bánsághi Anna 18 of 31

ABLAK BEZÁRÁSA egy ablak bezárását a nem-kliens terület különféle elemein hívott Close metódus teszi lehetővé, mely két eseményt vált ki: Closing ezen esemény alatt az ablak bezárás még megakadályozható, pl. nem mentett adatok esetén Closed ha a Closing esemény kezeletlen maradt, vagy nem lett megszakítva a bezárás, akkor váltódik ki a Closed esemény 2015 Bánsághi Anna 19 of 31

ABLAKOK TULAJDONSÁGAI a képernyőn az ablak elhelyezkedése a Left és Top koordinátákkal szabályozható a Topmost tulajdonsággal szabályozható, hogy melyik legyen a legfelső ablak az ablak mérete a SizeToContent, Widht, Height, MinWidht, MinHeight tulajdonságokkal szabályozható az ablak háromféle Minimized állapotban lehet: Normal, Maximized, a nem-kliens terület megjelenés ét elsősorban a WindowStyle tulajdonság beállításával szabályozhatjuk 2015 Bánsághi Anna 20 of 31

DIALÓGUS DOBOZOK egy desktop alkalmazás általában egy főablakból áll, amely egyrészt megjeleníti az alkalmazásban kezelt adatokat, másrészt felhasználói felületet (menük, eszköztárak, státuszsor) biztosít ezen adatok feldolgozásához a főablak mellett dialógus dobozok használhatók speciális információ megjelenítésére vagy információ gyűjtésére a WPF különféle dialógus dobozok létrehozását teszi lehetővé, továbbá saját osztályokat is definiálhatunk 2015 Bánsághi Anna 21 of 31

BEÉPÍTETT DIALÓGUS DOBOZOK szöveges információ megjelenítésére, és gombokkal vezérelhető döntés meghozatalára szolgál a speciális üzenet doboz: MessageBox az újrafelhasználhatóság és a konzisztens felhasználói élmény támogatására szolgálnak az általános dialógus dobozok: OpenFileDialog SaveFileDialog PrintDialog 2015 Bánsághi Anna 22 of 31

MESSAGEBOX var eredmeny = MessageBox.Show( "üzenet szövege", "ablak címe", MessageBoxButton gombok, // a megjelenítendő gombok, pl. YesNoCancel MessageBoxImage ikon // a szöveg melletti ikon típusa, pl. Warning ); //... switch( eredmeny ) { case MessageBoxResult.Yes: // a felhasználó a Yes gombot nyomta meg, a teendő kódja... break; case MessageBoxResult.No: // a felhasználó a No gombot nyomta meg, a teendő kódja... break; case MessageBoxResult.Cancel: // a felhasználó a Cancel gombot nyomta meg, a teendő kódja... break; } 2015 Bánsághi Anna 23 of 31

3. ERŐFORRÁSOK az alkalmazás tetszőleges pontjáról elérhető objektumok XAML erőforrások adat fájlok stílusok, sablonok, adatok nem futtatható tartalom, erőforrás vagy adat fájlok 2015 Bánsághi Anna 24 of 31

XAML ERŐFORRÁSOK létrehozhatók mind a markup, mind a code-behind fájlban minden FrameworkElement típusú elemnek van egy Resources attribútuma, az ún. ResourceDictionary, melyben kulcs - érték párokként definiálhatók az erőforrás objektumok valamely elemen definiált erőforrás az elemből és annak részfájából érhető el az alkalmazásra globális erőforrásokat az Application elemben, valamely ablakra vagy vezérlőre lokális erőforrásokat az adott ablakban vagy vezérlőben definiáljuk 2015 Bánsághi Anna 25 of 31

ERŐFORRÁSOK HIVATKOZÁSA minden erőforrásnak rendelkeznie kell egyedi kulccsal, melyet az x:key direktívában explicite rögzíthetünk a definiált erőforrásra az egyedi kulcsán keresztül hivatkozunk <Window.Resources> <sys:string x:key="gombfelirat">hello, world!</sys:string> </Window.Resources> <Button Content="{StaticResource gombfelirat}" /> this.resources["gombfelirat"] = "Valami más szöveg"; // this = Window 2015 Bánsághi Anna 26 of 31

STÍLUS ERŐFORRÁS PÉLDA <Window.Resources> <Style TargetType="Button" x:key="pirosgomb"> <Setter Property="Background" Value="Red" /> <Setter Property="Foreground" Value="White" /> </Style> </Window.Resources> <Button Style="{StaticResource pirosgomb}" Content="Hello" /> 2015 Bánsághi Anna 27 of 31

ERŐFORRÁSOK KERESÉSE a XAML betöltő a vezérlők logikai fáján először a legközelebbi csomóponthoz rendelt erőforrásokat keresi és tölti be ha nem talált, akkor megy tovább felfelé a fán, és ha talál a kiinduló vezérlőn tartozó erőforrást, akkor betölti ha nem talált sehol betölthető erőforrást, akkor végül eljut az Application gyökérhez, és az ahhoz rendelt (alapértelmezett) erőforrásokat tölti be 2015 Bánsághi Anna 28 of 31

ERŐFORRÁS FAJTÁK statikus egyszer, a XAML betöltésekor kerülnek feloldásra a referenciák <Button Background="{StaticResource hatterszin}" Content="Hello" /> dinamikus csak akkor kerülnek feloldásra a referenciák, amikor azokra szükség van, illetve amikor az erőforrás megváltozik <Button Background="{DynamicResource hatterszin}" Content="Hello" /> 2015 Bánsághi Anna 29 of 31

explicit ERŐFORRÁS KULCSOK a programozó által megadott kulcs implicit a kulcs egy másik tulajdonság értékéből automatikusan áll elő (pl. stílusok) <!-- a TargetType tulajdonság értéke a kulcs --> <!-- a stílus az ablakban található összes gombra automatikusan érvényes lesz --> <Window.Resources> <Style TargetType="Button"> <Setter Property="Background" Value="Red" /> <Setter Property="Foreground" Value="White" /> </Style> </Window.Resources> <!-- nincs olyan, hogy Style={StaticResource Button} --> <Button Content="Hello" /> 2015 Bánsághi Anna 30 of 31

ERŐFORRÁS FÁJLOK az erőforrásokat kiemelhetjük egy vagy több önálló XAML fájlba, majd a kívánt alkalmazásokaban hivatkozhatunk a fájlokra <Window.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="Stilusok.xaml"/> <ResourceDictionary Source="Sablonok.xaml"/> </ResourceDictionary.MergedDictionaries> </ResourceDictionary> </Window.Resources> 2015 Bánsághi Anna 31 of 31