2009-10-05 9 views
1

Im en développant une application pour Microsoft Surface et Im essayant de tirer le meilleur parti des bibliothèques qui sont là, la fonctionnalité Im après si pouvoir flicker un élément d'interface utilisateur.WPF Flick le long d'un chemin (Surface)

Le contrôle ScatterView rend cela facile, mais je voudrais restreindre l'élément de l'interface utilisateur pour qu'il ne puisse être déplacé que le long d'un chemin défini. C'est là que j'ai des problèmes.

Mes questions sont les suivantes:

1) Pouvez-vous limiter à un ScatterViewItem effleuré seulement le long d'un chemin?

2) Si ce n'est pas le cas, comment implémenteriez-vous un geste de flick pour balayer un élément d'interface utilisateur le long d'un chemin défini?

Merci!

Mark

Répondre

3

1) Non pas que je sache, ce qui est sans doute pas la meilleure façon de l'aborder. 2) En supposant que vous ayez l'objet que vous voulez feuilleter et le chemin au moment du design, j'ai déjà mis en place un glisser-déplacer le long d'un chemin en créant une animation qui représente le mouvement sur tout le chemin. Lors de l'exécution, je capture des contacts sur cet objet, les envoie à un Affine2DManipulationProcessor et recherche l'animation en fonction des événements de manipulation. Donc, dans mon cas, je créais un tiroir. Lorsque l'utilisateur a touché le tiroir, je démarre l'animation et la mets immédiatement en pause. Si l'utilisateur l'ouvre, je recherche l'animation en fonction de la distance à laquelle le processeur de manipulation me dit qu'il a bougé. Pour obtenir le comportement du film, vous devez simplement transférer la manipulation au Affine2DInertiaProcessor et continuer à gérer les événements delta.

Tout cela fonctionne étonnamment bien.

+0

Merci Ben, c'est une bonne réponse, je suppose que tant que vous le calculez correctement, la classe d'animation fonctionnerait bien. J'hésitais à l'utiliser à cause de la sensation non-naturelle que cela pouvait donner à l'utilisateur ... – Mark

Questions connexes