Реализовать модель / диалоговую форму, используя форму Windows? - PullRequest
1 голос
/ 11 июля 2011

у нас есть это приложение, которое использует кросс-домен приложения (2 домена приложения в одном процессе).

нам нужно имитировать окно диалога / модели, которое будет ожидать результата от 2-го домена приложения, прежде чем оно сможет продолжить работу. 2-й домен приложений загружает форму WPF (в то время как 1-й домен приложений все еще находится в формах .Net 2). нам придется использовать этот подход плагинов, чтобы мы могли использовать наш новый WPF, не ломая старое приложение.

в данный момент я использую ManualEventReset для оповещения, когда 2-й домен приложения готов, но это замораживает графический интерфейс пользователя, поэтому при перемещении окна «Диалог / Модель» оно не перерисовывает фон. Это происходит только в Windows XP (Windows 7 работает нормально)

Мне было интересно, есть ли способ реализовать окно модели, чтобы оно по-прежнему позволяло проходить сообщениям, чтобы фон мог перекрашиваться сам. Дайте мне знать, если вам нужно больше подробностей

1 Ответ

1 голос
/ 11 июля 2011

вы можете открыть обычную модальную форму, которая сразу же прячется и открыть желаемую форму winforms в другом потоке ... так что вы можете "заблокировать" один поток, пока ваша операция не будет завершена, не блокируя обработку сообщений вашего UI.. для выхода из модального состояния после освобождения заблокированной нити вызовите скрытые формы close () (вызов Invoke () для вашей нити пользовательского интерфейса)

...