【问题标题】:Silverlight DragDropTarget: replace "drag shadow" with other element?Silverlight DragDropTarget:用其他元素替换“拖动阴影”?
【发布时间】:2012-12-13 10:17:44
【问题描述】:
使用 Silverlight Toolkit 的 DragDropTarget 时,被拖动项目的快照显示在光标下方。
是否可以替换此快照/拖动阴影或禁用它?
背景:
我在控件之间拖动项目,即从列表框到画布,当我放下列表框项目时,我在画布上创建了不同尺寸的不同项目。我想显示将要创建的项目,或者至少是它的区域,而不是列表框中的文本。
This related question 没有帮助我。
谢谢!
编辑:This related question 建议更改源代码以更改小“插入指示器”图标。
【问题讨论】:
标签:
silverlight
drag-and-drop
silverlight-toolkit
【解决方案1】:
我在使用数据网格中的 dragdroptarget 的应用程序中遇到了同样的问题,我找到了一个解决方案,但并没有达到预期的效果。好吧,由于该解决方案,我能够找出另一种完全按照我想要的方式工作的方式。
我使用 DragStarting 事件根据从 MouseLeftButtonUp 和 MouseLeftButtonDown 事件收到的输入来取消拖动。
在 DragStarting 事件中:
public void dg1stUnAllocDragStarting (object sender, ItemDragEventArgs e)
{
if (blnMouseLeftButtonUp)
{
e.Cancel = true;
e.Handled = true;
}
blnMouseLeftButtonUp = false;
}
MouseLeftButtonUp 事件:
public void dataGrid1stUnAllocChild_MouseLeftButtonUp (object sender, MouseButtonEventArgs e)
{
blnMouseLeftButtonUp = true;
}
MouseLeftButtonDown 事件:
public void dataGrid1stUnAllocChild_MouseLeftButtonDown (object sender, MouseButtonEventArgs e)
{
blnMouseLeftButtonUp = false;
e.Handled = false;
}
希望对你有所帮助。