【发布时间】:2017-02-14 11:43:32
【问题描述】:
我有以下情况:
- 一个窗口显示了对存储在实用程序类中的引用。
-
稍后一个模态对话框需要出现在该窗口的上方;所以我正在做以下事情:
OptionalMessageBox message = new OptionalMessageBox(title, errorMessage.ToString(), MessageImage.Warning); if (UIUtilities.TopWindow != null) { UIUtilities.TopWindow.Dispatcher.Invoke(() => message.Owner = UIUtilities.TopWindow); UIUtilities.TopWindow.Dispatcher.Invoke(() => message.ShowDialog()); } else { message.ShowDialog(); }
但是,这给出了经典的“调用线程无法访问此对象,因为不同的线程拥有它”虽然我不明白为什么我正在使用 TopWindow 变量的调度程序。作为注释(出于绝望),我尝试将调用放在我刚刚创建的消息变量上 - 这也不起作用,但我没想到这是问题,因为如果我现在拥有它成功了!
任何建议将不胜感激。
【问题讨论】:
标签: wpf