我已经创建了自定义WPF工具箱控件。我已经实现了拖放功能,该功能可以按预期工作,但是当我将鼠标(拖动数据)移到放置目标上时,鼠标光标显示为该动作,尽管代码已执行且正常运行,但无法完成。 (here可以看到将光标拖到目标上时的外观)。我已经尝试在目标OnDragEvent
中关注以下内容:
Mouse.OverrideCursor = Cursors.Hand;
在这种情况下,光标仅改变大约1/1000秒,然后又变回上图所示的位置。Cursor.Current = Cursors.Hand;
也不起作用。答案 0 :(得分:0)
您使用DoDragDrop
吗?
您可以将“效果”设置为第三个参数:
DragDrop.DoDragDrop(drg, dragData, DragDropEffects.Move);
答案 1 :(得分:0)
也许这可以帮助: 我有两个画布,其中一个按住按钮:
<Canvas
HorizontalAlignment="Left"
Height="225"
Margin="270,10,0,0"
VerticalAlignment="Top"
Width="237"
PreviewMouseMove="Canvas_PreviewMouseMove">
<Button
Content="Button"
Canvas.Left="65"
Canvas.Top="65"
Width="75"/>
</Canvas>
<Canvas
HorizontalAlignment="Left"
Height="225"
Margin="20,10,0,0"
VerticalAlignment="Top"
Width="245"
AllowDrop="True"
Background="Black"
/>
,这在PreviewMouseEvent中:
private static readonly string ident = "test";
private void Canvas_PreviewMouseMove(object sender, MouseEventArgs e)
{
DataObject dragData = new DataObject(ident, ((Canvas)sender));
DragDrop.DoDragDrop((Canvas)sender, dragData, DragDropEffects.Move);
}
在设置背景色时,您将获得“移动”效果,如果未设置颜色,则不会获得移动效果。也许这是你的问题。 (用户控件的行为相同)
答案 2 :(得分:0)
请小心,如果发生拖放操作,您需要实施一些事件。我建议您查看以下链接,我认为这将很有用并解决您的问题。