2009-02-24 11 views
4

Je voudrais organiser UIControls dans WPF de la même manière que les applications sur l'iPhone. Ils devraient être positionnés sur une grille, mais un utilisateur devrait être capable de les déplacer ailleurs, après avoir relâché le bouton de la souris (ou le doigt dans le cas d'un iPhone) l'UIControl sélectionné devrait revenir à la position suivante dans la grille. Les autres UIElements devraient être réarrangés automatiquement. En outre, l'utilisateur doit également connecter deux éléments avec une ligne ou quelque chose.Organiser les éléments GUI dans WPF de la même manière que les applications sur l'iPhone

Je ne suis pas expérimenté avec WPF. La première question est s'il y a un conteneur qui convient à quelque chose (System.Windows.Controls.Grid?) Ou si je dois étendre toile ou quelque chose d'autre pour cela.

Je voudrais savoir quels éléments du framework WPF peuvent être utilisés et quels éléments je dois écrire moi-même.

Pour les personnes qui ne possèdent pas d'iPhone: http://www.youtube.com/watch?v=3omhu2AUWC8

Mise à jour

J'ai regardé AnimatedTilePanel dans les BangOTricks exemples (voir ci-dessous), celui-ci explique comment créer votre propre groupe et comment laissez-le organiser les choses là .. Cependant j'ai encore besoin d'une idée comment implémenter glisser et déposer correctement dans cet exemple ..

+0

Avez-vous eu n'importe où avec ce problème? Je suis également à la recherche d'un contrôle de panneau animé qui supporte le glisser-déposer. Je suis proche mais je n'en sais pas assez sur WPF pour le faire fonctionner. –

Répondre

1

Jetez un oeil à AnimatedTilePanel de Sac-o-Tricks Kevin à:

http://j832.com/bagotricks/

Il ne fait pas tout ce que vous voulez, mais il vous montrera comment écrire un panneau qui anime ses enfants lorsque changer la taille ou l'ordre.

+0

Le "Animating Tile Panel" semble intéressant ..Je suis en train de lire le code et d'essayer de comprendre comment cela fonctionne, merci pour votre réponse – Nils

+0

autant que je peux voir, Panel a été étendu, puis ArrangeOverride remplacé. Détail intéressant: L'auteur a écrit du code d'animation générique dans WPF.Util – Nils

2

Malheureusement, vous devrez écrire beaucoup de choses vous-même, comme WPF ne fait pas automatiquement ce que vous cherchez pour.

Pour positionner les contrôles, vous pouvez utiliser UniformGrid ou Grid. En supposant que cela ressemble beaucoup à la vidéo iPhone que vous avez montrée, vous pouvez simplement utiliser le UniformGrid avec 4 colonnes et autant de lignes dont vous avez besoin. Pour l'animation de glissement, vous pouvez commencer par manipuler la propriété RenderTransform sur tout ce qui est déplacé, mais vous devrez définir un gestionnaire pour vérifier si vous avez atteint le seuil nécessaire une autre "cellule" - et à ce stade, vous devrez changer l'ordre des éléments dans l'arbre.

0

Nouvelle entrée à cet ancien poste en 09. Plus tôt cette année (2012) quelqu'un a écrit un FluidWrapPanel et l'a ouvert. Je l'ai essayé et ça fonctionne comme un charme - comme ça sur le menu de l'iPhone.

Vous pouvez également appliquer à d'autres éléments d'interface utilisateur ou UserControl.

Questions connexes