gpt4 book ai didi

WPF Dragdrop,如何在拖动过程中以视觉方式拒绝掉落?

转载 作者:行者123 更新时间:2023-12-04 18:54:04 24 4
gpt4 key购买 nike

在Wpf中拖动期间,如何更改鼠标光标(或使用装饰器)以指示droptarget将不接受拖动的项目?

我曾尝试在e.Effects = DragDropEffects.None事件期间设置DragEnter,但这无法正常工作,我怀疑我误解了该功能的用途。我已经尝试使用GiveFeedback事件,但是看不到droptarget如何影响它。

是否有任何教程涵盖Wpf中droptarget的拒绝?

最佳答案

只需在放置目标的DragEnter中设置DragDropEffects即可。您的DragEnter甚至被调用了吗?您是否在放置目标控件上设置了AllowDrop?

这是WPF拖放过程中的事件序列(取自MSDN),可能有助于弄清楚发生了什么...

  • 通过调用源控件的DoDragDrop方法来启动拖动。

    DoDragDrop方法采用两个参数:
    *数据,指定要传递的数据
    * allowedEffects,指定允许哪些操作(复制和/或移动)

    将自动创建一个新的DataObject对象。
  • 这反过来引发GiveFeedback事件。在大多数情况下,您不必担心GiveFeedback事件,但是如果您希望在拖动过程中显示自定义鼠标指针,则可以在其中添加代码。
  • 将AllowDrop属性设置为True的任何控件都是潜在的放置目标。可以在设计时在“属性”窗口中设置AllowDrop属性,也可以在Form_Load事件中以编程方式设置。
  • 当鼠标移过每个控件时,将引发该控件的DragEnter事件。 GetDataPresent方法用于确保数据格式适合于目标控件,并且Effect属性用于显示适当的鼠标指针。
  • 如果用户在有效的放置目标上释放鼠标按钮,则会引发DragDrop事件。 DragDrop事件处理程序中的代码从DataObject对象中提取数据,并将其显示在目标控件中。
  • 关于WPF Dragdrop,如何在拖动过程中以视觉方式拒绝掉落?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1659570/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com