public void StartNativeDrag(CoreDragInfo info) => CoreDispatcher.Main.RunAsync(CoreDispatcherPriority.High, async() => { try { var sourceEvent = new NSEvent(); var source = new NSDraggingSource2(); source.DraggingSessionEndedAction = (NSImage image, CGPoint screenPoint, NSDragOperation operation) => { // The drop was completed externally _manager.ProcessDropped(new DragEventSource(info.SourceId, _window)); return; }; if (_window.ContentView != null) { _window.ContentView.BeginDraggingSession( await DataPackage.CreateNativeDragDropData(info.Data, info.GetPosition(null)), sourceEvent, source); } else { this.Log().Error("Failed to start native Drag and Drop (Window.ContentView is null)"); } } catch (Exception e) { this.Log().Error("Failed to start native Drag and Drop.", e); } });