5

我有一个使用透明窗口的 wpf 项目,我为我的对话框窗口和我的mainwindow.

关闭使用相同窗口样式的对话框窗口后,我的DragMove()事件出现错误。MainWindow更奇怪的是,这个异常只发生在mouseleftbuttonStatus Bar处理MainWindow. 如果我将标签换成按钮并用事件替换,mouseleftbuttondownclick不会收到错误消息。

奇怪的是,弹出的对话窗口并没有实现dragmove,我也没有拖着mainwindowdragmove在我的代码执行返回到调用后以mainwindow某种方式被showdialog()调用。

目前对我来说一个简单的解决方法是将我的标签换成按钮并连接点击事件。

但是,我更感兴趣的是了解导致此问题的原因以及为什么单击事件有效但鼠标却惨遭失败。

我的“StatusBar”只是一个stackpanel带有标签和其他堆栈面板(包含更多标签)的标签。

以前有没有其他人解决过这个问题?我是否需要实现某种mouseclick事件处理程序覆盖,以便我可以捕获并取消此异常的发生?

如果需要,可以提供复制代码。我在dragmove这里获得了足够多的点击量,所以我希望这对外面的人来说是一件容易的事。

提前感谢您的帮助!

4

3 回答 3

4

我的大脑今天工作不正常。在这种情况下,我忘记了事件的路由。我只需要在按下鼠标按钮时触发的路由事件上设置 Handled 属性。在发布线程之前,我不知何故在调试器中错过了这一点。

于 2010-10-06T20:57:07.643 回答
1

使无边框窗口可移动的“正确”方法-> https://stackoverflow.com/a/3275712/146032

确保仅在由事件 MouseLeftButtonDown 触发时调用 DragMove,并且不要忘记使用 e.Handled=true 处理事件;

于 2012-03-07T22:00:08.610 回答
0

如果您在消息框显示完成时收到此异常。放置 Dragmove(); 里面 try 并在 catch 中清空。

于 2018-03-30T08:18:21.877 回答