Vývoj pro Microsoft Surface

Posledních pár dní jsem měl to štěstí, že jsem mohl vyvíjet nějaké menší aplikace pro Microsoft Surface, o kterém jsme nedávno psali. Bohužel Surface (ani SDK, ve kterém je jeho simulátor) nejsou volně dostupné. Proto píšu tento příspěvek, abych ukojil zvědavost zvědavých. Takže první dva poznatky:

  1. Vyvíjet pro Surface je radost a krása
  2. Ale bolí od toho záda

Vývoj je možný na dvou platformách – XNA pro pokročilé 3D vizualizace anebo typičtěji WPF aplikace pro všechno ostatní. Zůstaneme tedy u WPF. Standardní WPF umí reagovat na události od klávesnice a myši. Přidáním příslušné knihovny pro Surface získáte též události typu Contact, tj. dotek něčeho s plochou. To něco může být buď prst anebo identifikační tag (představte si čárový kód). U kontaktu máte k dispozici řadu údajů – souřadnice X a Y, orientaci (azimut), jednoznačný GUID identifikující dotyk apod.

Abyste nemuseli dělat reakce na tyto události všude sami, je součástí knihoven též sada ekvivalentních ovládacích prvků. Např. prvek SurfaceListBox dědí z prvku ListBox a navíc implementuje standardní rozhraní IContactInputElement, kde v implementaci reaguje na příslušné doteky (událost ContactDown, vlastnost ContactsOver apod.)  a převádí je na standardní akce (např. výběr položky).

Kromě toho jsou k dispozici speciální ovládací prvky pro Surface, zejména ScatterView , do kterého můžete vkládat kontejnery nazvané ScatterViewItem – do těch pak můžete vložit cokoliv – fotky, videa, vlastní formuláře apod. Automaticky pak dostanete funkce přesouvání, otáčení, zvětšování a zmenšování apod. Kromě toho můžete použít i řadu “služebních” tříd, například na základní fyziku manipulací, zobrazení dotykové klávesnice, interakci se Surface Shell aplikací apod.

Tak snad se Vám také někdy poštěstí…

Michael