protected override void Dispose(bool disposing)
        {
            if (disposing)
            {
                _cts.Cancel();
                _cts.Dispose();
                ThreadHelper.JoinableTaskFactory.Run(async delegate
                {
                    try
                    {
                        await _control.DestroyAsync();
                    }
                    catch (OperationCanceledException)
                    {
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show($"Error: {ex}");
                    }
                });
            }

            base.Dispose(disposing);
        }