Модальные диалоги, вызывающие зависание автоматизации пользовательского интерфейса

Я пытаюсь реализовать автоматизацию пользовательского интерфейса в приложении WPF, но всякий раз, когда появляется модальное диалоговое окно, автоматизация пользовательского интерфейса будет зависать до тех пор, пока диалоговое окно не будет закрыто вручную.

До сих пор я пытался использовать второй поток, чтобы закрыть диалоговое окно, настроить приложение на использование потоков MTA, использовать RaiseEvent, чтобы вызвать Button.ClickEvent на кнопке, чтобы закрыть диалоговое окно, и использовать sendinput для отправки нажатия клавиши в диалоговое окно. . Ни один из этих методов не работает, и я не нашел других обходных путей, чтобы попробовать.

Кто-нибудь знает возможные решения?


person user1190756    schedule 25.03.2012    source источник
comment
Когда вы говорите «реализовать», вы имеете в виду, что пишете код, использующий автоматизацию пользовательского интерфейса для автоматизации элемента управления, или что вы добавляете поддержку автоматизации пользовательского интерфейса в приложение, которым владеете? (т.е. приложение, в котором вы реализуете интерфейс IInvokeProvider)   -  person BrendanMcK    schedule 25.03.2012


Ответы (2)


Попробуйте ChildWindow: http://wpftoolkit.codeplex.com/wikipage?title=ChildWindow&referringTitle=Home

person Xcalibur37    schedule 25.03.2012
comment
Я только что проверил это на нескольких диалогах, которые вызывали проблемы, и это, похоже, устранило проблему. Спасибо. - person user1190756; 26.03.2012
comment
Можете ли вы догадаться, почему использование этой библиотеки помогло? Реализован ли InvokePattern в наборе инструментов по-другому? Спасибо - person Karel Frajták; 24.01.2019

Удерживать пользовательский интерфейс — это определение и цель модального диалога. Если вы не хотите удерживать пользовательский интерфейс, вам нужен диалог modeLESS. Пользовательский интерфейс не зависает. Модальный диалог делает именно то, что он должен делать.

person paparazzo    schedule 25.03.2012
comment
ОП не спрашивает, почему модальный диалог блокирует пользовательский интерфейс, а почему диалог блокирует автоматизацию. - person Karel Frajták; 24.01.2019