Menu

Microsoft Surface V1 Posts

SurfaceItemsControl comment ça marche ?

Il arrive souvent lors d’un développement Microsoft Surface, de devoir créer des contrôles personnalisés pour affiner l’expérience NUI (Natural User Interface) de notre application. La plupart du temps on va créer un SurfaceUserControl ou un CustomControl, mais d’expérience il arrive souvent de devoir créer un contrôle de contenu qui fonctionne à la manière d’une ListBox, ComboBoxou ScatterView. Je vais donc expliquer comment créer ce genre de contrôle en héritant d’un SurfaceItemsControl (ItemsControl en WPF, la démarche est identique).

Concept de base :

Un SurfaceItemsControl n’est qu’un container qui permet d’afficher et de gérer des éléments de diverses nature et de les afficher et les traiter d’une façon particulière. Comme pour tout container Surface (ou WPF), la propriété ItemsSource permet, par Binding notamment, de lui adresser la liste des éléments à traiter. Au moment de traiter la liste de ses éléments, l’ItemsControl va encapsuler chaque élément de la liste (chaque élément de l’arbre logique) dans un container de type ContentControl afin de les traiter de façon unifiée dans son arbre visuel, cependant il restera accessible en l’état dans l’arbre logique. Là ou ça deviens intéréssant, c’est que l’on peut redéfinir ce container et lui donner des comportements que nous jugeons utiles.

Voici les différentes étapes pour implémenter correctement ce type de contrôle.

Read More

Surface : Affine2DInertiaProcessor

Pour faire suite à mon dernier billet, je vais maintenant expliquer une autre classe du SDK Microsoft Surface, l’Affine2DInertiaProcessor. Cette classe permet de gérer de l’inertie sur des objets. Comme pour l’Affine2DManipulationProcessor, cette classe s’utilise quasiment pareil.

La principale utilisation de cette classe réside dans l’ajout d’une inertie sur un objet suite à une manipulation (le plus souvent grâce à un Affine2DManipulationProcessor) pour ajouter du réalisme dans son interface NUI (Natural User Interface).

Le code ci-dessous vous montre comment utiliser l’Affine2DInertiaProcessor après une manipulation.

Read More

Projet CodePlex : Surface Toolkit

Je vous présente mon premier projet CodePlex, un Toolkit pour Microsoft Surface. Il contient une série de contrôles, behaviors, effects et utilitaires pour vos projets Surface. Vous avez les sources, c’est libre de droit, j’attend vos retours avec impatience, enjoy 🙂

Ca se télécharge ici : http://blacksurfacetoolkit.codeplex.com/

Read More

Surface : Affine2DManipulationProcessor

Quand on travaille sur Microsoft Surface, il y a une chose qui nous préoccupe, c’est la compréhension des gestuelles que peuvent faire les utilisateurs sur la table. Tap, ContactDown, agrandissement, rotation, translation, etc… Comment savoir, et surtout comment traiter cette information de façon efficace.

Le SDK Microsoft Surface nous apporte un outil pour cette problématique, l’Affine2DManipulationProcessor. Cette classe assez méconnue, qui se trouve dans le namespace Microsoft.Surface.Presentation.Manipulations, permet facilement de connaitre les gestuelles présente sur la table, voir même de les filtrer.

Le principe est simple, une fois instancié, cette classe permet de scruter et d’analyser les contacts sur la table. Pour faire simple, on donne à l’Affine2DManipulationProcessor des contacts à scruter et celle-ci les analyses pendant tout leur cycle de vie et nous informe des gestuelles qui peuvent être déduite de l’évolution de ses contacts.

Les manipulations sont calculées par rappart à un container UIElement donné. Au moment de l’instanciation de l’Affine2DManipulationProcessor, il y a deux paramètres. Le premier est le type de manipulation que l’on veut observer et le second dans quel contexte graphique. Ainsi, une manipulation est toujours déterminée par son container source, même si celui-ci subit des transformations (rotation, translation, etc..) l’Affine2DManipulationProcessor fournira des informations de manipulation comme si celui-ci n’avait subit ses transformations.

Read More

Projet Surface LCL : La vidéo

Voici la vidéo du projet dont je parle dans mon dernier billet, cela vous donne un aperçu de cette application 🙂

Read More

Projet Surface : LCL à la carte

J’ai participé récement à un beau projet nommé « LCL à la carte pour Microsoft Surface » pour une agence LCL dans Paris. Ce projet a été réalisé avec une talentueuse équipe de Designers (Société externe), de Graphistes (Société externe) et des developpeurs de ma société. Ce projet a été réalisé pour la banque LCL (MOA) par la céllule innovation du Crédit Agricole (MOE).

LCL

C’est une application NUI (Tactile sur Microsoft Surface) et vous pouvez y aller pour juger par vous même a l’agence LCL du Boulevard Saint-Michel (au 22 du Boulevard dans le 6e à Paris). C’est un projet test qui va permetre de voir l’impact du tactile dans un environement bancaire. L’accent a été mis sur le coté intuitif et l’exploitation complète du surport Microsoft Surface, je vous invite donc a allez tester cette superbe application et nous faire vos retours 🙂

Read More