public AvnDragDropEffects DragEvent(AvnDragEventType type, AvnPoint position, AvnInputModifiers modifiers, AvnDragDropEffects effects, IAvnClipboard clipboard, IntPtr dataObjectHandle) { var device = AvaloniaLocator.Current.GetService <IDragDropDevice>(); IDataObject dataObject = null; if (dataObjectHandle != IntPtr.Zero) { dataObject = GCHandle.FromIntPtr(dataObjectHandle).Target as IDataObject; } using (var clipboardDataObject = new ClipboardDataObject(clipboard)) { if (dataObject == null) { dataObject = clipboardDataObject; } var args = new RawDragEvent(device, (RawDragEventType)type, _parent._inputRoot, position.ToAvaloniaPoint(), dataObject, (DragDropEffects)effects, (RawInputModifiers)modifiers); _parent.Input(args); return((AvnDragDropEffects)args.Effects); } }
public void OnDragAndDropComplete(AvnDragDropEffects effect) { _tcs?.TrySetResult((DragDropEffects)effect); _tcs = null; }