Showing posts with label presentation. Show all posts
Showing posts with label presentation. Show all posts

Tuesday, November 28, 2017

Rad sa WPF prozorima

Ukoliko niste pročitali post “Uvod u WPF – Windows Presentation Foundation“ savetujem vam da to obavezno uradite i steknete neki uvid u WPF; pre nego što pristupite praktičnoj primeni. Ali nemojte dozvoliti sebi da vas to obeshrabri. Učenje WPF shvatite više kao igranje, jer je zaista interesantno šta sve za razliku od Windows Forms možete da radite sa WPF kontrolama. Sve ono što vas je kočilo kod Windows Forms kontrola da napravite, u WPF je to moguće stavljanjem WPF kontrola u WPF kontrole i kombinovanje istih da rade kao jedna. Pitanje je samo koliko ima nešto smisla kombinovati ili ne. Znači mogućnosti su ono što vam treba biti motivacija. Ja sam svestan da čak i danas postoji mnogo hobista a ne programera koji i dalje ne žele da pređu sa Windows Forms na WPF, ali to više nije ni smešno. Neki to rade zato što im je računar previše star dok drugi jednostavno smatraju učenje XAML uz C# komplikovanim. XAML vam jednostavno olakšava linije i linije code-a, vreme i na jednostavan način povećava kreativnost. Da ne spominjem da vi većinu XAML code-a možete da kreirate podešavanjem svojstava u Properties upotrebom miša. Vaše WPF kontrole naravno možete obogatiti i već napisanim stilovima, animacijama i čime god vi želite, stime da vremenom skupljate i čuvate XAML code koji možete koristiti u više vaših aplikacija. Ali uzmite u obzir da nešto što ste pravili u Windows 7, npr. stil za ListBox kontrolu, neće biti isto transparentan na Windows 10. Ponekad će te u vašim stilovima i šablonima trebati promeniti i prilagoditi novijim operativnim sistemima. Iz tog razloga ukoliko pravite WPF aplikaciju u komercijalne svrhe, morate testirati vašu WPF aplikaciju na više računara, Windows operativnih sistema i korigovati razliku. Ali takođe u dokumentaciji morate navesti za koji operativni sistem je pravljena vaša WPF aplikacija, da ukoliko izađe sledeća verzija Windows-a i vaša aplikacija na njemu ne izgleda baš kao što treba da izgleda, vi ne snosite nikakvu odgovornost.   


( Pravljenje WPF aplikacija je kreativnost i igra ) 

Razlike između WPF i Windows Forms su pre svega što WPF omogućava da pravite mnogo robusnije, bolje i lepše prozore. Početnike najviše zbunjuje što pozicioniranje kontrola je u WPF totalno drugačije i zavisi od panela koji su ne vizualni ali omogućavaju automatsku promenu veličine svih kontrola u njima prilikom promene veličine prozora. Tačno je da za mnogo stvari koje ste radili u Windows Forms, to neće raditi na isti način. Ali će raditi na drugi način, često i bolji ili uopšte neće raditi. Poznato je da WPF aplikacije često imaju svoj vlastiti dizajn i da su često okrenute svom vlastitom šarenilu. Čak što više to se i traži od WPF aplikacija, iako ne treba preterivati. Međutim, postavlja se pitanje koliko je to poželjno s obzirom da nas praksa uči da boje prozora treba da kontroliše sam sistem i da korisnik kroz Windows operativni sistem treba da odredi izborom Windows teme kako će i prozori u vašim WPF aplikacijama biti obojeni. Rešenje je da u svojim WPF aplikacijama omogućite kroz opcije vaše aplikacije i takvu mogućnost. Visual Studio .Net je na primer takođe WPF aplikacija koja deli svoj dizajn na Color Theme kao što su Dark, Blue ili Light. Međutim vi možete pronaći mnoštvo kolor tema za Visual Studio .Net na Internet-u i njih koristiti. Npr. pogledajte moje video tutorijale za osnove C# i videćete da se u njima koristi ne standardna Visual Studio .Net kolor tema. Znači i vi možete omogućiti u vašim WPF aplikacijama da korisnici vaše WPF aplikacije koriste i teme za vašu aplikaciju. Imajte samo u vidu da vaše WPF aplikacije mogu koristiti i slabovidi korisnici i oni koji ne vide sve boje, i bilo bi poželjno omogućiti i njima neku temu. Dok učite dajte sebi slobodu i sa bojama i sa oblicima prozora kako samo vaša mašta može učiniti. Ali samo dok učite WPF; koristite sve boje; poenta je da uživate u vlastitoj kreativnosti. Što više budete eksperimentisali; vaše WPF aplikacije će biti bolje. Krenimo prvo od WPF prozora praktičnim primerima.

Šta je ResizeMode svojstvo i kako ga podesiti?

Monday, September 11, 2017

Uvod u WPF – Windows Presentation Foundation

Još od pojave Windows 1.0 koji je na tržište izašao 1985 godine; primarna tehnologija iza mnogih Windows baziranih korisnički interfejsa je bila isključivo bazirana na GDI – Graphic Device Interface. To znači da je celi Windows  operativni sistem generisao grafički prikaz, čak i za štampače i druge uređaje; kroz samo tri osnovna objekta za crtanje. Pen – olovka, Brush – četka i Font. Pojavom Windows 95 i pored toga što taj Windows nije imao direktan pristup memoriji, već se sve programiralo na MS-DOS-u; razvojem računarskih igrica i sve složenijeg hardvera je nastao Microsoft DirectX koji je uspostavljao direktnu komunikaciju između interfejsa i hardvera. Pojavom Windows XP-a; 24 avgusta 2001 godine nastaje poboljšana verzija GDI-a; GDI+; koja je donela značajna poboljšanja kao npr. rastersku grafiku. Ali bez obzira na sva poboljšanja, vi kao programer ste mogli samo da promenite inicijalni prikaz bilo koje standardne kontrole preko predefinisanja Windows događaja koji je prikazivao korisnički interfejs kontrola.


( Microsoft revolucija Framework verzije 3.0 )

Tačno 21 novembra 2006 godine Microsoft korporacija objavljuje .Net Framework verziju 3.0 kodnog imena WinFX kao ugrađenu komponentu Windows Vista-e koji je poput najveće revolucije promenio GDI paradigmu i uveo novitete koje su ostavile programere bez teksta. Iako ta revolucija nije donela ogroman uspeh Windows Vista-i na tržištu; celi svet svakog .Net programera se okrenuo naglavačke dok se uspostavljao novi način razmišljanja. Sa .Net Framework-om verzije 3.0 su došle sledeće tehnologije: 
  • WPF – Windows Presentation Foundation – grafički podsistem namenjen izgradnji aplikacija sa vizualno korisničkim interfejsom baziranom na XAML-u.
  • WFC - Windows Communication Foundation – servisno orjentisan sistem razmene poruka koji omogućava programerima komunikaciju sličnu veb serverima. 
  • WF – Windows Workflow Foundation – tehnologija za definisanje, izvršavanje i upravljanje tokovima omogućavajući programerima razdvajanje logike od pozadinskog izvršavanja komponenti i boljem upravljanju aplikacijom.
  • Windows CardSpace – softverska komponenta koja bezbedno skladišti digitalni identitet osobe i obezbeđuje jedinstven interfejs za konkretnu transakciju poput logovanja na veb sajt.
Umesto da kreirate korisnički interfejs korišćenjem instrukcija napisanim u programskom jeziku, WPF koristi XAML – Extensible Application Markup Language koristeći izuzetne mogućnosti hardverske akceleracije GPU – grafičkih procesnih jedinica ugrađenih u računare. WPF koristi Direct3D za iscrtavanje što znači da koristi GPU – procesor grafičke kartice. Tako vektorska grafika kod većih rezolucija postaje jasnija i bolja dok korisnički interfejs kod malih uređaja poput mobilnih telefona izgleda isto. Hardversko ubrzanje kod WPF ne zahteva postojanje vrhunskog podsistema jer poseduje softverski rendering. Sa programerske tačke gledišta XAML je derivat XML – Extensible Markup Language stime da donosi modifikovan XML. Na taj način XAML elemente korisničkog interfejsa prikazuje kao XML tagove i omogućava paralelni rad grafičkih dizajnera i programera pri kreiranju korisničkog interfejsa. XAML code se čak portuje na sve platforme bez promene. Tako WPF aplikacije mogu biti isporučene kao samostalne aplikacije ili veb aplikacije. Imajte u vidu da se WPF veb aplikacijama se pristupa kroz pregledač. Jedna od najznačajnijih promena koje je doneo WPF je set tehnologija za obradu i štampu dokumenata jer koristi OpenPackaging Convention koji nudi prilagodljive meta podatke, kompresiju dokumenata, digitalne potpise i upravljanje pravima pristupa. 

Arhitektura WPF-a