A feladat egy része előre el van készítve. Nyisd meg a mellékelt solutiont, és miután lefordítottad és futtattad az alkalmazást (F5) az alábbi kép fog fogadni.
FIGYELEM! A solution és hozzá tartozó fájlokat innen tölthetitek le.
A lejátszó egy egyszerű, de teljes értékű media player. Főbb funkcionalitásai a következők:
-
Audio és videó fájlok megnyitása, lejátszása. -
Play, Pause, Stop funkciól -
Beletekerhetünk a videóba. -
-
Egyszerű működőképes lejátszó, de jó volna, ha felkészítenénk arra, hogy a Windows7 felhasználói felületének újdonságait is kihasználja. Először a megújult tálcával ismerkedünk meg, és ennek a lehetőségeivel egészítjük ki a fentebbi alkalmazást.
| A beillesztendő kódok előtt van egy Task szöveg elem. Ez jelöli azt, hogy a C# kódba hova is kell tennünk a kódokat. A forrásfájlba a legtöbb beillesztendő elem helye előtt található egy Task – x Pl: (Task – 1.3) comment, amely a kezdő .NET es fejlesztőket segíti, hogy az adott kódsort, hova is kell illesztenie. A kódok után pedig található egy néhány soros magyarázat, hogy az adott kód mit is csinál pontosan. Ezek a magyarázatok az alábbi ikonnal vannak ellátva. |
A tutorial első részében az új tálcával foglalkozunk. A tálca több tekintetben is megváltozott. Egy korszak zárult le vele, hisz közel 2 évtizeden keresztül a hagyományosnak tekinthető tálcát használtuk a Windowsokban, ahol csak az éppen futó alkalmazásokat tudtuk elérni, váltani köztük, vagy esetleg a helyi menüt alkalmazva parancsokat tudtunk elhelyezni az alkalmazáshoz (Igaz utóbbi kivitelezése elég problémás feladat volt). De immár az új tálcával kinyíltak a lehetőségek a fejlesztők előtt. Funkcionalitást, látványos elemeket adhatunk egyszerűen hozzá, ezzel is fokozva a felhasználói élményt és kényelmet.
Természetesen a tálcának a használata is megváltozott ezzel. Az alábbi ábra az új tálca állapotait szemlélteti:
Láthatjuk, hogy mind vizuálisan mind felhasználói tekintetben is változott a tálca, és hogy minden állapotnak külön vizuális visszacsatolása van a felhasználó felé, ezzel is segítve a felhasználó eligazodását a futó alkalmazásai között.
De most már ismerkedjünk meg azzal, hogy milyen kényelmi és funkcionális szolgáltatásokat is nyújt a fejlesztők számára az új tálca.
Sokszor előfordul az, hogy szeretnénk jelezni a felhasználó számára, hogy az alkalmazás jelenleg milyen állapotban van (Lásd: Windows Live Messenger tálcán lévő állapot jelzője) vagy épp azt, hogy történt-e valamilyen különleges esemény. Eddig nem igazán tudtuk értesíteni a felhasználót a tálcán. Esetleg villogtattuk a tálcán lévő program ikonját, de különösebb lehetőségünk nem igazán volt. Az új Windows 7 tálca ezen a téren is segítségünkre lehet, ugyanis az alkalmazásunk ikon területét különböző állapotjelző ikonokkal is felvértezhetjük, így rögtön láthatja a felhasználó, hogy történt-e valamilyen különleges esemény a programunkkal.
Az alábbi feladatban a média lejátszó állapotáról fogjuk értesíteni a felhasználót. Amennyiben a hangerőszabályzó értéke nulla, abban az esetben a tálcán ezt jelezni fogjuk, így a felhasználó rögtön értesülhet az alkalmazásunk jelenlegi „néma” állapotáról.
1. Nyissuk meg a MediaWindow.xaml.cs állományt.
2. Navigáljunk el sliderVolume_DragCompleted eseményhez.
(Ez az esemény, akkor fog bekövetkezni, amikor a média lejátszónkon a hangerő szabályzó csúszkáját eltoljuk, és elengedjük.)
3. Egészítsük ki az eseményt az alábbi kóddal: (Task -1)
| if (TaskbarManager.IsPlatformSupported) { if (sliderVolume.Value == 0) { Icon icon = new Icon("Images\\mute.ico"); TaskbarManager.Instance.SetOverlayIcon(icon, "Mute"); } else { TaskbarManager.Instance.SetOverlayIcon(null, null); } } |
Ez a kódrészlet annyit csinál, hogy először megvizsgálja, hogy az adott platform támogatja-e azt, hogy a Taskbar újdonságait használjuk. Értelemszerűen, ezek az újdonságok nem működnek például Windows XP-n, így ott kivételt dobna a program. Célszerű mindig ellenőrizni, hogy támogatott-e az adott platformon.
Ezt követően megvizsgáljuk a sliderVolume (Hangerőszabályzó csúszka) értékét. Amennyiben az érték 0, tehát nincs hang akkor töltsünk be egy icon-t (ez az icon egy resourceként definiált ikon) majd a TaskbarManager.Instance.SetOverlayIcon metódusa segítségével adjuk át az ikont, valamint ha szeretnénk, akkor ToolTipet is megadhatunk. Ebben az esetben a tooltip a „Mute” szót fogja kiírni. Ellenkező esetben, ha elmozgatjuk a hangerő szabályzó csúszkáját, és nem a 0-án hagyjuk az értékét akkor az ikont eltávolítjuk a tálcáról. Ekkor a TaskbarManager.Instance.SetOverlayIcon metódus ikon tulajdonságának null értéket adunk át.
4. Ha ezzel megvagyunk, fordítsuk le az alkalmazást (Ctrl+Shift+B) és futtassuk (F5).
5. Miután elindult az alkalmazás töltsünk be egy filmet. Indítsuk el a Play gombra kattintva.
6. Állítsuk a hangerőszabályzót 0 állapotba. Toljuk a csúszkát a bal sarokba. Ekkor az alább látható ikon jelenik meg a tálcán az alkalmazásunk jobb alsó sarkában. Ha elvisszük a 0 értékről a hangerőszabályzó csúszkát, akkor az ikont eltávolítjuk.
| Ikonnal | Ikon nélkül |
Az eddigi Windows operációs rendszerekben, amíg egy hosszabb feladat tartott egy alkalmazásnál (PL: Internet Explorrel való fájl letöltés), akkor nem igazán tudtuk interaktívan értesíteni a felhasználót, hogy a feladat éppen hol is tart. Esetlegesen volt egy ablakunk, amiben volt egy Progressbar, ami egy becslést adott a felhasználó számára, hogy a feladat hol is tart éppen. De nagyobb, hosszadalmasabb feladatoknál a felhasználó csak lerakta a tálcára és várt. Jó esetben nem feledkezett el arról, hogy van egy hosszadalmas taskja. Ha meg megfeledkezett, akkor akár órák múlva jött rá, hogy bizony az a feladat már lefutott, csak ő elfelejtett ránézni. A Windows 7 új tálcája ezen a téren is változást hozott. Immár, ha hosszadalmasabb feladatot végez az adott program, akkor a tálca területét is felhasználhatja progressbarként. Ilyenkor a felhasználó, ha csak ránéz a tálcára, rögtön kap egy vizuális visszacsatolást, hogy a feladata éppen hol is tart. Ezt a funkciót fogjuk mi is implementálni a média lejátszónál. Nem valami stílszerűen, az éppen lejátszott videó idő csuszkáját ábrázoljuk vele a taskbarunk progressbarján.
1. Nyissuk meg a MediaWindow.xaml.cs állományt.
2. Navigáljunk el sliderTime_ValueChanged eseményhez, és adjuk hozzá az alábbi kódsorokat. (Task -2)
(Ez az esemény, akkor fog bekövetkezni, amikor a média lejátszónkon a TimeLine szabályzó csúszkáját eltoljuk, és felengedjük.)
| if (TaskbarManager.IsPlatformSupported) { TaskbarManager.Instance.SetProgressState(TaskbarProgressBarState.Normal); TaskbarManager.Instance.SetProgressValue((int)sliderTime.Value, (int)sliderTime.Maximum); } |
A kód csupán annyit csinál, hogy beállítja, milyen Statusbar típust használjunk. 5 féle típus létezik, a Normal, Error, Indeterminate, No Progress, Paused. Ezt követően beállítjuk a statusbar jelnlegi értékét. Ez jelen esetben az időcsúszka aktuális értéke. Maximális értéke pedig a csúszka maximuma.
3. Fordítsuk le az alkalmazást (Ctrl+Shift+B) és futtassuk (F5).
4.
Miután elindult az alkalmazás, töltsünk be egy filmet. Indítsuk el a Play gombra kattintva. Ekkor a tálcán az alkalmazásunk ikonjában egy progressbar fog elindulni, és annak függvényében módosul, amennyire az idő változik a filmen.
Szintén egy hasznos újdonság az, hogy parancs felületeket kapunk Windows 7 tálcájától. Ez a funkció számunkra lehetővé teszi, hogy már a betekintőből irányíthassuk az alkalmazásunkat, mintha egy távirányítónk lenne a tálcán az alkalmazásunkhoz. Erre kitűnő példa a Windows Media Player legújabb 12- es változatta.
Az ábrán is kitűnően látszik, hogy akár a betekintőből is indíthatjuk, vagy épp léptethetjük a Windows Media Playert. Így ahhoz, hogy a legfontosabb műveleteket elvégezzük, nem kell megnyitni az alkalmazást, elég csak fölé vinni az egeret a tálcán és a betekintőben meg is jelenik az előre definiált vezérlő felület. Ez egy nagyon jó és hasznos kényelmi funkció, annyira, hogy a Windows 7 beta és RC felméréseiből is kiderült, hogy a felhasználók ezt az újdonságot ítélték az egyik legkényelmesebb tálca funkciónak, és meglepően hamar elkezdték ezt a funkciót hétköznapi szinten is használni.
Ennek tudatában célszerű a mi alkalmazásunkat is felkészíteni, hasonló funkcionalitással. Hisz az egyik legfontosabb elvárás mindig az, hogy a felhasználónak mindig könnyű legyen az élete, és az alkalmazásunkat a lehető legegyszerűbben tudja használni.
Így most mi is felkészítjük a média lejátszónkat hasonló funkciókkal.
1. Nyissuk meg a MediaWindow.xaml.cs állományt.
2. Adjuk hozzá az alábbi sorokat a MediaWindow konstruktora elé. Az alábbi ThumnailButtonokat fogjuk később példányosítani. (Task - 3.1)
| private ThumbnailToolbarButton btnMiniPlay; private ThumbnailToolbarButton btnMiniStop; private ThumbnailToolbarButton btnMiniPause; |
3. Navigáljunk el az AddButtonToThumbnail metódushoz, és adjuk hozzá az alábbi kódot. (Task – 3.2)
| if (TaskbarManager.IsPlatformSupported) { btnMiniPlay = new ThumbnailToolbarButton(Properties.Resources.Play, "Play"); btnMiniPlay.Enabled = false; btnMiniPlay.Click += new EventHandler(btnMiniPlay_Click); btnMiniStop = new ThumbnailToolbarButton(Properties.Resources.Stop, "Stop"); btnMiniStop.Enabled = false; btnMiniStop.Click += new EventHandler(btnMiniStop_Click); btnMiniPause = new ThumbnailToolbarButton(Properties.Resources.Pause, "Pause"); btnMiniPause.Enabled = false; btnMiniPause.Click += new EventHandler(btnMiniPause_Click); TaskbarManager.Instance.ThumbnailToolbars.AddButtons(new WindowInteropHelper(Application.Current.MainWindow).Handle, btnMiniPlay, btnMiniPause, btnMiniStop); } |
A kód a szokásos ellenőrzéssel kezdődik. Mégpedig azzal, hogy az adott platform támogatja-e, hogy mi gombokat adjunk hozzá a betekintő nézethez. Ezt követően példányosítunk 3 ThumbnailToolBarButtont. Egy Playt, egy Stop-ot és egy Pause-t. A ThumbnailToolBarButton konstruktorában megadjuk, hogy milyen képet jelenítsen meg a toolbaron valamint a Tooltip feliratát is meghatározzuk. A képek az alkalmazás egy resource fájljában vannak, így könnyedén elérhetjük őket a kódból. Ezt követően letiltjuk a gombokat, hogy amíg, nem lehet addig ne is használjuk őket. Majd feliratkozunk a Click eseményükre. Az esemény feliratkozás nagyon egyszerüen történhet a Visual Studio segítségével. Amikor a += kiírjuk nyomjunk 2x a Tab-ra és a studio legenerálja számunkra az adott eseményt egy majdnem üres törzzsel. Utolsó lépésként pedig hozzáadjuk a gombjainkat a ThumbnailToolbar-hoz. Innentől kezdeve a gombjaink megjelennek a betekintő nézet alján.
4. Ha az eseményeket legeneráltuk, akkor a törzsét meg kell határoznunk. A megfelelő funkciók már egy-egy előre definiált metódusba vannak elhelyezve, így csak meg kell hívni őket. (Task -3.3)
| private void btnMiniPlay_Click(object sender, EventArgs e) { Play(); } private void btnMiniPause_Click(object sender, EventArgs e) { Pause(); } private void btnMiniStop_Click(object sender, EventArgs e) { Stop(); } |

5. A btnOpen_Click eseményhez adjuk hozzá az alábbi sorokat, ezzel engedélyezzük az ThumbnailButtonokat, ha egy fájlt előtte már betöltöttünk. (Task – 3.4)
| btnMiniPause.Enabled = true; btnMiniPlay.Enabled = true; btnMiniStop.Enabled = true; |
6. Fordítsuk le az alkalmazást (Ctrl+Shift+B) és futtassuk (F5).
7. Miután elindult az alkalmazás, töltsünk be egy filmet, és a filmet most a betekintő nézetből indítsuk el. Vigyük az egérkurzort az alkalmazás ikonja fölé és kattintsunk a Play gombra. Ekkor a film lejátszásra kerül. Figyeljük meg azt is, hogy magában a betekintő nézetben is láthatjuk a filmet. Ezt már a Windows Vistától tudjuk, de a navigálás már Windows 7es újdonság.
Az, hogy parancsokat adhatunk ki a betekintő nézetben hasznos, viszont nem mindig elég, hisz a hely kicsi, és inkább csak a legfontosabb parancsokat helyezzük el a betekintő nézetben. Viszont szükségünk lehet egy jóval nagyobb funkcionalitást nyújtó helyre. Erre és ehhez hasonló esetekre találták ki a Jump Listet, vagy durva magyarsággal az ugró listát. Ez a menüelem akkor jelenik meg, ha az alkalmazás ikonjára jobb egérgombbal kattintunk a tálcán.
Itt viszont már szép számmal elhelyezhetünk menüpontokat. Például a Windows Live Messenger –nél, egyszerűen változtathatunk jelenlegi állapotunkon, indíthatunk el más alkalmazásokat vagy épp a leggyakrabban használatos elemeket találhatjuk a listában (Ezeket a menüket a Start menüben is megtalálhatjuk). Ez szintén egy olyan újdonság, amely a felhasználó életét könnyebbé teheti, így hát tegyük azzá avval, hogy az általunk készített Media playert is felkészítjük erre. A feladatunkban az egyszerűség kedvéért, csak egy külső alkalmazást fogunk elindítani a JumpListből.
1. Nyissuk meg a MediaWindow.xaml.cs állományt.
2. Navigáljunk el az AddJumpList metódushoz.
3. Adjuk hozzá a következő sorokat (Task - 4)
| if (TaskbarManager.IsPlatformSupported) { string mediaPlayerPath = @"C:\Program Files\Windows Media Player\wmplayer.exe"; IJumpListTask myTask = new JumpListLink(mediaPlayerPath, "Windows Media Player") { IconReference = new Microsoft.WindowsAPICodePack.Shell.IconReference(mediaPlayerPath, 0) }; JumpList jumplist = JumpList.CreateJumpList(); jumplist.AddUserTasks(myTask); jumplist.Refresh(); } |
A kód megvizsgálja, hogy vajon a platform amin futatjuk az alkalmazást az megfelelő-e? Ha igen akkor készítünk egy JumpListLinket, amelynek megadjuk az elérési útvonalat, amit meg kell nyitnia, valamint a címkét ami meg fog jelenni a JumpListben. Ezt követően az IconReference segítségével meghatározzuk az elem ikonját, ami jelen esetben ugyan abból a forrásból származik mint maga a cél alkalmazás.
Készítünk egy JumpList-et úgy, hogy meghívjuk a JumpList CreateJumpList metódusát, majd átadjuk a számára az előbb létrehozott JumpListTaskot.
Opcionális
Ha a leggyakoribb vagy a mostanában használt elemeket, fájlokat is beleszeretnéd rakni a JumpListbe akkor a következőt kell beállítanod.
| jumplist.KnownCategoryToDisplay = JumpListKnownCategoryType.Recent |
Ezt követően hozzá adhatod az elemeket a Recenthez az AddToRecent metódus segítségével.
FIGYELEM! Ebben az esetben regisztrálni kell az adott fájltípust az alkalmazásunkhoz!
4. Fordítsuk le az alkalmazást (ctrl+shift+b) és indítsuk el (F5)
5. Kattintsunk a tálcán az alkalmazás ikonjára jobb egérgombbal, ekkor az alábbi kép fog fogadni minket. Kattintsunk a Windows Media Player ikonjára. Ekkor a Media Player be fog töltődni.
Elküldve
2010. 01. 03. 21:07
by
Turoczy Attila
Megtekintve:
505
alkalommal