Beispiel #1
0
            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;
 }