コード例 #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);
                }
            }
コード例 #2
0
 public void Dispose()
 {
     _native?.Dispose();
     _native = null;
 }
コード例 #3
0
 public ClipboardImpl(IAvnClipboard native)
 {
     _native = native;
 }
コード例 #4
0
 public ClipboardDataObject(IAvnClipboard clipboard)
 {
     _clipboard = new ClipboardImpl(clipboard);
 }