Tras haber presentado una serie de entradas dedicadas a valorar las aplicaciones ejemplo disponibles en Canal Windows 7 Multitouch, continuamos hoy con la serie de artículos dedicados al desarrollo de aplicaciones para dispositivos tablet multitouch con Ms Windows 7 en relación a su propiedad Inertia. La serie se compondría de:
Tablets MultiTouch con MS Windows 7: Inertia (I)
Tablets MultiTouch con MS Windows 7: Inertia (II)
Tablets MultiTouch con MS Windows 7: Inertia (II)
Tablets MultiTouch con MS Windows 7: Inertia (IV)
Tablets MultiTouch con MS Windows 7: Inertia (V)
Hoy se analizará cómo ir poniendo en práctica los diferentes elementos de Inertia que combinados dotan a los objetos de las aplicación de esta característica. En la entrada anterior de la serie Tablets MultiTouch con MS Windows 7: Inertia (V) se veía si el dispositivo era compatible con Windows Touch, superado este punto se da paso a enlazar los eventos que produce el dispositivo Tablet con nuestra aplicación.
Para ello se capturan los eventos de TouchUp, TouchDown y TouchMove, todos estos eventos están recogidos en la clase “TouchHandler” . Esta se encuentra disponible en el proyecto “Windows7.Multitouch” incluido en el conjunto de proyectos de Microsoft relacionados con Multotouch y descargable desde aqui.
Al añadir esta clase al proyecto, por medio de la referencia ”using Windows7.Multitouch;”, podemos acceder a los eventos anteriormente mencionados como se puede apreciar en las siguientes líneas de código:
//Register for touch events
_touchHandler.TouchDown += _pictureTrackerManager.ProcessDown;
_touchHandler.TouchUp += _pictureTrackerManager.ProcessUp;
_touchHandler.TouchMove += _pictureTrackerManager.ProcessMove;
En este momento se han asociado varios métodos o funciones a los eventos proporcionados por el Tablet, pudiendo así empezar a interactuar con ellos y añadir de este modo la lógica deseada. Cada uno de los eventos se ha asociado a un método, el código de cada método se puede observar en las siguientes líneas de código:
public void ProcessDown(object sender, TouchEventArgs args)
{
PictureTracker pictureTracker = GetPictureTracker((uint)args.Id, args.Location);
if (pictureTracker == null)
return;
pictureTracker.ProcessDown((uint)args.Id, args.Location);
}
public void ProcessUp(object sender, TouchEventArgs args)
{
PictureTracker pictureTracker = GetPictureTracker((uint)args.Id, args.Location);
if (pictureTracker == null)
return;
pictureTracker.ProcessUp((uint)args.Id, args.Location);
}
public void ProcessMove(object sender, TouchEventArgs args)
{
PictureTracker pictureTracker = GetPictureTracker((uint)args.Id, args.Location);
if (pictureTracker == null)
return;
pictureTracker.ProcessMove((uint)args.Id, args.Location);
}
Como es posible apreciar los tres métodos hacen uso de la clase “PictureTracker” encargada de gestionar la propiedad de Inertia a través de sus métodos “ProcessManipulationDelta” y “OnBeforeInertia”.
En la siguiente entrada analizaremos como se lanzan estos métodos y como nuestros objetos adquieren la propiedad de Inertia.
Para acabar, recuerda que si quieres aprender mucho más sobre los secretos de los sistemas Microsoft Windows, te recomendamos leer el libro de Sergio de los Santos "Máxima Seguridad en Windows: Secretos Técnicos" , o siempre puedes suscribirte al Canal RSS de Windows Técnico para estar al día de las novedades e información técnica de interés.

Enviado
jun 04 2011, 01:13
por
Ignacio Briones