有没有办法从Windows获取拖动开始事件?

时间:2018-12-16 05:03:38

标签: c# wpf drag-and-drop mouseevent

我有一个简单的拖放实现:

private void appt_Drop(object sender, DragEventArgs e)
{
    Outlook.Explorer oExplorer = OlApp.ActiveExplorer();
    Outlook.Selection oSelection = oExplorer.Selection;

    foreach (object _obj in oSelection)
    {
        if (_obj is Outlook.AppointmentItem)
        {
            after = (Outlook.AppointmentItem)_obj;
        }
    }
    << send it where it needs to go >>
}

但是我现在想添加一个“放在这里”覆盖图。问题是,我打算让用户将Outlook约会放入我的应用程序中,但是当它发生在我的应用程序之外时,我不知道如何利用拖动开始事件。尽我所能,Google让我失败了(或者我生疏了)。

1 个答案:

答案 0 :(得分:1)

您无需担心Drag Start,只需处理DragEnter / DragOver / Drop事件:

  • 在您的控件中,设置AllowDrop =“ True”
  • 为DragEnter和Drop事件添加事件处理程序,如果要提供精美的反馈,还可以为DragOver添加事件处理程序

要获取约会的文本,可以使用e.Data.GetData(“ Text”)。不幸的是,如何获取其他约会数据似乎没有记录。 e.Data.GetData(“ RenPrivateAppointment”)听起来很有趣(另请参见here)。