Операция копирования буфера обмена зависает на форме WPF в приложении WinForm

Я работаю над приложением WinForm, которое включает в себя форму WPF. Я вызываю ElementHost.EnableModelessKeyboardInterop(this) в конструкторе формы WPF. Кажется, все работает нормально, кроме копирования в буфер обмена.

Когда я выбираю текст из любого элемента управления в форме WPF (например, TextBox) и копирую, приложение зависает примерно на 2 секунды, а затем все продолжается как обычно. Оказывается, исключение выдается и, кажется, обрабатывается где-то в стеке вызовов; операция копирования заканчивается, но не раньше, чем поток пользовательского интерфейса немного зависает.

Исключением является исключение COMException, возникающее в System.Windows.Clipboard.Flush с сообщением "Сбой OpenClipboard (исключение из HRESULT: 0x800401D0 (CLIPBRD_E_CANT_OPEN))".

Из другого вопроса, заданного здесь ( Как мне скопировать содержимое строки в буфер обмена в C#?), Я понимаю, что класс Clipboard используется WPF. Я думаю, что сбой, вероятно, происходит из-за того, что класс WPF Clipbard используется в приложении WinForm... он явно обрабатывает исключение где-то, так как копия все еще работает... Просто не уверен, почему он зависает или есть что-то Мне нужно сделать, чтобы избежать этой проблемы при использовании формы WPF в приложении WinForm?

0 ответов

Другие вопросы по тегам