Megosztás a következőn keresztül:


Közvetlen manipuláció

A Közvetlen manipuláció API-k segítségével nagyszerű pásztázási, nagyítási és húzási felhasználói élményt hozhat létre. Ehhez feldolgozza az érintéses bemenetet egy régión vagy objektumon, kimeneti átalakításokat hoz létre, és alkalmazza az átalakításokat a felhasználói felület elemeire. A közvetlen manipulációval optimalizálhatja a válaszképességet, és csökkentheti a késést a szálon kívüli bemeneti feldolgozás, az opcionális szálon kívüli bemeneti találatok tesztelése és a bemeneti/kimeneti előrejelzés révén.

Minden olyan alkalmazás, amely közvetlen manipulációt használ az érintéses interakciók feldolgozására, megjeleníti a Windows 8-at, és az interakciók visszajelzési viselkedését, amelyek megfelelnek a általános felhasználói interakciókra vonatkozó irányelveknek.

Fejlesztői célközönség

A Direct Manipulation API olyan tapasztalt fejlesztők számára készült, akik ismerik a C/C++-t, jól ismerik a Component Object Model (COM), és ismerik a Windows programozási fogalmait.

Futásidejű követelmények

A Közvetlen manipulációt a Windows 8-ban vezették be. A 32 bites és a 64 bites verziókban is megtalálható.

Miért érdemes a DirectManipulationt használni?

Az interakciókat egyszerű és konzisztens módon kezeli

A közvetlen manipuláció egy régió vagy objektum viselkedésének és interakcióinak előre deklarálásával működik. Egy weblap például gyakran van konfigurálva pásztázásra és nagyításra. Futásidőben a bemenet ezután egy egyszerű API-híváson keresztül társítva lesz ehhez a régióhoz/objektumhoz. Ettől a ponttól kezdve a Közvetlen manipuláció elvégzi a bemenet feldolgozásának, a kényszerek és a személyiség alkalmazásának, valamint a kimeneti átalakítások generálásának minden nehéz emelését.

Rugalmas érintéses alkalmazások létrehozása

A válaszidő optimalizálása és a késés minimalizálása érdekében a közvetlen manipulációs feldolgozás a felhasználói felületi száltól független, különálló szálon történik. Ennek eredményeképpen a kimeneti átalakítások párhuzamosan futhatnak a felhasználói felületen végzett tevékenységekkel. A felhasználói felületi szál tevékenységei közé tartozhat az alkalmazáslogika, a renderelés, az elrendezés és bármi más, amely ciklusokat használ fel a processzoron.

A megvalósítás rugalmassága

A Közvetlen manipuláció felületeinek átfogó támogatást nyújtanak a bemenetek kezeléséhez, az interakciók felismeréséhez, a visszajelzési értesítésekhez és a felhasználói felület frissítéséhez. Az interfészek olyan rendszerszolgáltatásokat is tartalmaznak, mint például DirectComposition.

Alapfogalmak

A legalapvetőbb közvetlen manipulációs implementáció egy nézetport, tartalom, valamint interakciók. A viewport olyan régió, amely képes fogadni és feldolgozni a felhasználói interakciókból származó bemeneteket. A végfelhasználó számára látható tartalom régiója is. A tartalom az a tényleges objektum, amelyet a végfelhasználók láthatnak, és amely a felhasználói interakciókra reagálva mozog vagy méretezhető. A közvetlen manipuláció által támogatott elsődleges felhasználói (más néven manipulációk) pásztázó és nagyító műveletek. Ezek az interakciók fordítási vagy skálázási átalakítást alkalmaznak a nézetporton belüli tartalomra. Több nézetport (mindegyik saját tartalommal) konfigurálható egyetlen ablakban, hogy gazdag felhasználói felületet hozzon létre.

Ez az ábra egy alapszintű közvetlen manipulációs implementációt mutat be a pásztázás előtt és után.

pásztázás előtti és utáni alapszintű közvetlen manipulációs implementáció.

A közvetlen manipuláció inicializálása során a DCompDirectManipulationCompositor objektum példányosítva van, és közvetlen manipulációhoz van társítva. Ez az objektum egy burkoló DirectCompositionkörül, amely a rendszerkomposztátor. Az objektum feladata a kimeneti átalakítások alkalmazása és a vizualizációfrissítések vezetése.

A névjegyek a WM/_POINTERDOWN üzenetben megadott mutatóazonosítója által azonosított érintési pontot jelölik. Amikor WM_POINTERDOWN üzenet érkezik, az alkalmazás meghívja SetContact. Az alkalmazás értesíti a közvetlen manipulációt a kezelendő névjegyekről, valamint a névjegyekre reagáló nézetport(ok)ról. A billentyűzet- és egérbemenet speciális pointerId értékekkel rendelkezik, így a közvetlen kezeléssel megfelelően kezelhetők.

A fenti alapesetben, amikor SetContact néhány dolognak nevezzük:

  • Amikor a felhasználó pásztázást végez, a rendszer egy WM/_POINTERCAPTURECHANGED üzenetet küld az alkalmazásnak, amely értesíti, hogy a partnert a közvetlen manipuláció használta fel.
  • Amikor a felhasználó áthelyezi az áthelyezéseket, a nézetport aktiválja a DirectComposition burkoló által használt frissítési eseményeket, hogy vizuális frissítéseket vezessen a képernyőre. Egy nézetportban pásztázó felhasználó számára a tartalom úgy tűnik, hogy zökkenőmentesen mozog a partner alatt.
  • Amikor a felhasználó felemeli a névjegyet, a felhasználó azt látja, hogy a tartalom tovább mozog, miközben tehetetlenségi animációvá változik, fokozatosan lassítva, amíg el nem éri a végső pihenőhelyet.

Billentyűzet- és egérbemenet feldolgozása

A közvetlen manipuláció lehetővé teszi a billentyűzet- és egérüzenetek manuális továbbítását az alkalmazás felhasználói felületi száláról a ProcessInput API-val, hogy azok a közvetlen manipulációval megfelelően kezelhetők legyenek.

DirectManipulation és a HWND

A közvetlen manipuláció egy Win32 HWND-hez van társítva az adott ablak mutatójának bemeneti üzeneteinek fogadásához és feldolgozásához. Mivel a Közvetlen manipuláció kiszámítja a kimeneti értékeket, aszinkron visszahívásokat végez a közvetlen manipulációs komponensobjektum-modell (COM) az alkalmazásban implementált objektumokra. Ezek a visszahívások tájékoztatják az alkalmazást az objektumokra alkalmazott átalakításról. A közvetlen manipuláció a megadott HWND-n aktiválódik a Aktiválásmeghívásával.

Támogatási dokumentáció