Gong-wpf-dragdrop: Muestre una sombra paralela donde se colocará su elemento en lugar de un adorno de línea triangular (nueva característica)

Creado en 31 oct. 2015  ·  9Comentarios  ·  Fuente: punker76/gong-wpf-dragdrop

Hola,

Estoy usando su gran biblioteca en una aplicación que estoy escribiendo y tengo un nuevo requisito:

Cuando arrastra un elemento de una columna a otra, se muestra una especie de adorno de "línea triangular" para mostrar el lugar donde se colocará el elemento. Esto no es suficiente para la mayoría de los usuarios de mi aplicación y necesitaban un nuevo efecto para integrarse.

Este nuevo efecto es una especie de "rectángulo de sombra paralela" que aparece donde el elemento se soltaría teóricamente (consulte el gif animado para ver un ejemplo concreto:drop_shadow ).

Estaría listo para contribuir a su proyecto y hacer la codificación yo mismo para hacer esta función, pero por ahora todavía es difícil para mí ver dónde debería estar el mejor punto de extensión para esta función en su componente o si lo considera más como una característica externa que debe resolver el usuario del componente en lugar del componente en sí.

¿Podría compartir conmigo cómo implementar mejor esta nueva función?

¡Gracias por adelantado!

Atentamente,
Jonathan

Comentario más útil

@ punker76 He encontrado una solución para hacer esto con un controlador de caída personalizado y agregando una sombra oculta (arriba / abajo) al elemento contenido en el cuadro de lista. Funciona aproximadamente como en la captura de pantalla, pero no es una solución genérica. Sin embargo, si está interesado en la solución, puedo compartirla y discutirla.

Todos 9 comentarios

@foufure hola, esta podría ser una nueva característica interesante. Creo que lo mejor es implementar un nuevo DropTargetAdorner. ¿Pero tal vez solo se pueda usar para cuadros de lista ...?

@ punker76 Confirmo que esto solo se puede usar con listboxes. No tengo mucha experiencia con adornos, pero no estoy seguro de que funcione, porque el adorno se mostrará en la parte superior del ListBoxItem y no lo moverá para dejar lugar al adorno. ¿O me equivoco? ¿Existe alguna opción para hacer eso?

@ punker76 He encontrado una solución para hacer esto con un controlador de caída personalizado y agregando una sombra oculta (arriba / abajo) al elemento contenido en el cuadro de lista. Funciona aproximadamente como en la captura de pantalla, pero no es una solución genérica. Sin embargo, si está interesado en la solución, puedo compartirla y discutirla.

La biblioteca ofrece DragAdornerTemplate pero ¿hay un DropTargetAdornerTemplate ?
Estoy usando esta biblioteca para arrastrar y soltar archivos en la ventana. Entonces, cuando se arrastra un archivo sobre una ventana, quiero mostrar un borde punteado + texto + cambiar la opacidad.

¿Cómo puedo lograr eso con esta biblioteca?

_mi pregunta está algo relacionada con esta_

@foufure Estoy interesado en tu solución. ¿Podría compartirlo como un tenedor, tal vez?
Gracias.

@foufure ¿Podría compartir su solución? ¡Gracias!

Hola,

¡Perdón por la demora en responder a sus solicitudes para compartir mi solución! Como se escribió anteriormente, he hecho una solución rápida y sucia que funcionó para mi propio problema y para mi proyecto personal. No significa que funcionará para su caso, pero puede intentarlo. Puede encontrar la solución completa en el archivo adjunto, consulte \ DragDropUtilShadowDropHandler.cs.
KanbanExample.zip

Atentamente,
Jonathan

@ punker76 Esta sería una característica muy buena para agregar. Mis usuarios tienen problemas con el adorno de "línea con triángulos" actual porque requiere que sean muy precisos cuando arrastran elementos a una nueva ubicación. A menudo, es tan preciso que la acción de soltar falla porque el usuario no puede hacer que aparezca fácilmente el adorno de gota entre los dos elementos a los que desea que se mueva el elemento.

En el escenario de mi aplicación, estoy mostrando una caja de herramientas donde las herramientas se muestran horizontalmente como iconos (o insignias). Cuando arrastro un icono, obtengo un bonito adorno de arrastre que replica el elemento que se arrastra. Cuando arrastro el elemento a la nueva ubicación, es muy difícil encontrar el lugar correcto para colocarlo usando el adorno de caída "línea con triángulos".

Considere agregar una función similar a la que describió @foufure .

Gracias
Kyle

¿Algún movimiento sobre esto? Dragablz puede hacer algo similar, pero tiene una gran sobrecarga y prácticamente ya no se mantiene (también usa Canvas detrás de escena de lo que puedo recopilar, lo que hace que las cosas sean un poco menos personalizables desde el punto de vista de un usuario):

https://github.com/MaterialDesignInXAML/MotionList

¿Fue útil esta página
0 / 5 - 0 calificaciones