2015-10-31 5 views
2

J'ai écrit un contrôle de l'utilisateur du conseil kanban où je peux glisser et déposer des cartes d'une colonne à l'autre (listboxes/listboxitems) et j'ai utilisé le composant "https://github.com/punker76/gong-wpf-dragdrop" pour ce faire. Maintenant je veux ajouter un nouveau comportement: montrer une ombre d'aperçu où la carte sera déposée comme dans le gif animé en pièce jointe: drop shadow of card being insertedWPF glisser et déposer dans la zone de liste avec l'ombre de l'aperçu de l'endroit où il sera abandonné

Le gif animé montre le composant DevExpress faisant ceci. Au lieu d'utiliser DevExpress, je voudrais utiliser un autre composant open source, étendre le gong-wpf-dragdrop ou le faire moi-même.

Est-ce que quelqu'un l'a déjà fait ou sait qu'un composant le fait? Si ce n'est pas le cas, quelqu'un a-t-il une stratégie pour le faire?

  • J'ai essayé avec adorners, mais les adorners sont dans une autre couche et ne font pas dans la zone de liste pour être affichée (peut-être que je fais quelque chose de mal)
  • La prochaine chose que je suis en train en ce moment est ajouter un élément temporaire temporaire à la liste, mais le faire fonctionner semble assez compliqué et nécessite beaucoup de code (peut-être que je suis trop compliqué)
  • Est-ce que quelqu'un a de meilleures idées de stratégies ou de composants ou d'éléments à utiliser pour faire ça marche comme dans le gif animé?

Je suis étonné de ne pas en avoir trouvé plus sur ce sujet sur Google. Est-ce que tout le monde fait de telles choses avec DevExpress ou Telerik? Ou personne n'a posté de solution open source jusqu'à présent?

Répondre

3

La solution que j'ai finalement mis en œuvre est le suivant:

  • j'ai ajouté un fond caché et de l'ombre en haut de chaque carte contenue dans la zone de liste en XAML (attribut: « Effondrement »).

  • J'ai ajouté une propriété de dépendance pour gérer la visibilité du fond ou l'ombre supérieure

  • J'ai créé un drophandler personnalisé avec des fonctionnalités suivantes:

    • ne montrent pas l'ombre si l'élément traîné et suivant est plané
    • ombre montrer quand un autre élément est plané (en haut lorsque la moitié supérieure est plané, en bas alors que la moitié inférieure est plané)

Si quelqu'un est intéressé par la solution/le code final, veuillez le signaler en tant que commentaire et je le fournirai. Si quelqu'un a une meilleure idée de la façon de résoudre ce problème, je suis également intéressé.

final application animated gif

+1

oui s'il vous plaît partager, je suis intéressé. – user2475096

+1

Ce serait vraiment cool si vous pouviez publier votre solution en tant que public, alors tous les autres peuvent voir s'il existe une meilleure solution. Donc, je suis intéressé de voir votre solution. – punker76

+0

La solution a été publiée dans mon dernier commentaire sur [GitHub - gong-wpf-dragdrop issue 148] (https://github.com/punker76/gong-wpf-dragdrop/issues/148) comme KanbanExample.zip. Veuillez noter que c'était une solution spécifique pour mon problème et mon projet. –