Здравствуйте, Sheph, Вы писали:
S>Всем доброго времени суток, такая задача, показать модальное окно так чтобы у него был свой UI поток. Причём управление должно сразу же вернуться, после того как такой диалог будет создан. Пытаюсь сделать это так:
S>S> public void ShowModalDialogAndContinue()
S> {
S> blockingThread = new Thread( BlockingWindowThread );
S> blockingThread.SetApartmentState( ApartmentState.STA );
S> blockingThread.Start();
S> }
S> private void BlockingWindowThread()
S> {
S> var window = new BlockingWindow();
S> //window.Owner = mainWindow; - если раскомментировать, то кидается исключение, т.к mainWindow пренадлежит другому потоку
S> window.ShowDialog();
S> }
S>
S>Если раскомментировать закомментированную строчку, то вывалится исключение, что вполне естественно, ведь mainWindow — главное окно, которое должно блокироваться моим модальным диалогом, было создано в другом потоке. Вопрос — как назначить mainWindow владельцем BlockingWindow ? Может быть как-то черех mainWindow.Dispatcher ? Если можно через него, то как ?
mainWindow.Invoke