public void OnDrop(DragEventArgs eventArgs) { var dataObject = eventArgs.Data; IsLoading = true; IsOCRLoading = true; Task.Run(async() => { await Task.Delay(500); var stream = _machineContext.GetStreamFromIDataObject(dataObject); if (stream == null) { return; } _screenshot = new Bitmap(stream); var bitmapSource = _imageService.GetBitmapSource(_screenshot); bitmapSource.Freeze(); Dispatcher.CurrentDispatcher.Invoke(() => { CapturedImage = bitmapSource; IsLoading = false; }); var ocrResult = await _OCRService.GetText(SelectedOCRLanguage, _screenshot); Dispatcher.CurrentDispatcher.Invoke(() => { OCRResult = ocrResult; IsOCRLoading = false; }); }); }