Gong-wpf-dragdrop: Exibir uma sombra onde seu elemento será colocado em vez do adorno de linha triangular (novo recurso)

Criado em 31 out. 2015  ·  9Comentários  ·  Fonte: punker76/gong-wpf-dragdrop

Olá,

Estou usando sua ótima biblioteca em um aplicativo que estou escrevendo e recebi um novo requisito:

Quando você está arrastando um elemento de uma coluna para outra, uma espécie de adorno de "linha de triângulo" é exibida para mostrar o local onde o elemento será solto. Isso não é suficiente para a maioria dos usuários do meu aplicativo e eles precisam de um novo efeito para ser integrado.

Este novo efeito é uma espécie de "retângulo de sombra projetada" que aparece onde o elemento seria teoricamente solto (veja gif animado para um exemplo concreto:drop_shadow )

Eu estaria pronto para contribuir com o seu projeto e fazer a codificação sozinho para fazer esse recurso, mas por agora ainda é difícil para mim ver onde deve ser o melhor ponto de extensão para esse recurso em seu componente ou se você considera isso mais como um recurso externo a ser resolvido pelo usuário do componente, e não pelo próprio componente.

Você poderia compartilhar comigo como implementar melhor esse novo recurso?

Desde já, obrigado!

Atenciosamente,
Jonathan

Comentários muito úteis

@ punker76 Eu encontrei uma solução para fazer isso com um manipulador de soltar personalizado e adicionando uma sombra oculta (superior / inferior) ao elemento contido na caixa de listagem. Funciona aproximadamente como na captura de tela, mas não é uma solução genérica. No entanto, se você estiver interessado na solução, posso compartilhar e discutir sobre isso.

Todos 9 comentários

@foufure oi, pode ser um novo recurso legal. Acho que o melhor é implementar um novo DropTargetAdorner. Mas talvez só possa ser usado para caixas de listagem ...?

@ punker76 Eu confirmo que isso só poderia ser usado com

@ punker76 Eu encontrei uma solução para fazer isso com um manipulador de soltar personalizado e adicionando uma sombra oculta (superior / inferior) ao elemento contido na caixa de listagem. Funciona aproximadamente como na captura de tela, mas não é uma solução genérica. No entanto, se você estiver interessado na solução, posso compartilhar e discutir sobre isso.

A biblioteca oferece DragAdornerTemplate mas há um DropTargetAdornerTemplate ?
Estou usando esta biblioteca para arrastar e soltar arquivos na janela. Então, quando um arquivo é arrastado sobre uma janela, quero mostrar uma borda pontilhada + texto + opacidade de mudança.

Como posso fazer isso com esta biblioteca?

_minha pergunta está de alguma forma relacionada a esta_

@foufure Estou interessado na sua solução. Você poderia, por favor, compartilhá-lo como um garfo, talvez?
Obrigada.

@foufure Você poderia compartilhar sua solução? Obrigada!

Olá,

Desculpe pela demora em responder seus pedidos para compartilhar minha solução! Conforme escrito anteriormente, fiz uma solução rápida e suja que funcionou para meu próprio problema e para meu projeto pessoal. Isso não significa que funcionará no seu caso, mas você pode tentar. Você pode encontrar a solução completa em anexo, dê uma olhada em \ DragDropUtilShadowDropHandler.cs.
KanbanExample.zip

Atenciosamente,
Jonathan

@ punker76 Esse seria um recurso muito bom de se adicionar. Meus usuários têm problemas com o adorno atual de "linha com triângulos" porque exige que sejam muito precisos ao arrastar itens para um novo local. Freqüentemente, é tão preciso que a ação de soltar falha porque o usuário não consegue fazer com que o adorno de soltar apareça facilmente entre os dois itens para onde deseja que o item seja movido.

No cenário do meu aplicativo, estou mostrando uma caixa de ferramentas onde as ferramentas aparecem horizontalmente como ícones (ou emblemas). Quando arrasto um ícone, obtenho um belo adorno de arrasto que reproduz o item que está sendo arrastado. Quando arrasto o item para o novo local, é muito difícil encontrar o ponto certo para soltar usando o adorno de soltar "linha com triângulos".

Considere adicionar um recurso semelhante ao que @foufure descreveu.

Obrigado
Kyle

Qualquer movimento sobre isso? O Dragablz pode fazer algo semelhante, mas tem uma grande sobrecarga e praticamente não é mais mantido (também usa o Canvas nos bastidores, pelo que posso reunir, o que torna as coisas um pouco menos personalizáveis ​​a partir de um pov do usuário):

https://github.com/MaterialDesignInXAML/MotionList

Esta página foi útil?
0 / 5 - 0 avaliações