首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我与控件交互时,新WPF窗口中的InvalidOperationException

当我与控件交互时,新WPF窗口中的InvalidOperationException
EN

Stack Overflow用户
提问于 2016-10-11 16:38:14
回答 1查看 288关注 0票数 0

我有一个词外接,添加自定义工具栏到用户界面。该工具栏上有一个按钮,单击该按钮将打开一个WPF窗口。

我最近在那个窗户周围有一些奇怪的行为。当我试图与其上的任何控件交互时,窗口就会打开(即,单击textbox开始键入,选中复选框等)。我得到了无数的InvalidOperationException:

代码语言:javascript
复制
************** Exception Text **************

System.InvalidOperationException: Dispatcher processing has been suspended, but messages are still being processed.

   at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)

   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)

   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)

   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)

   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)

只有当我与窗口中的控件交互时,才会发生这种情况。它与任何特定的控件无关,我已经删除了所有内容,只是在窗口中间创建并空了textbox。不过,只要我一点击它,应用程序就会崩溃。

现在,我知道这个异常基本上告诉我,我可能正在执行一个操作,在可视化树修改过程中修改可视树(比如在可见性更改上显示消息框)。但我不会做那样的事。我只是打开一个窗口,然后点击里面的一个控件。

有人对这件事有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-03 14:36:13

对任何感兴趣的人来说,我最终都成功地解决了这个问题。事实证明,wpf对话实际上是一个WindowsForms表单,其中包含了elementhost。父WinForms表单中有一些代码是在ElementHost的VisibleChanged事件上执行的:

代码语言:javascript
复制
this.TopMost = true;
Application.DoEvents();
this.TopMost = false;

这是为了确保对话在第一次显示时总是显示在顶部。一旦这段代码被删除,异常就消失了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39982314

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档