wpf - 透明的 MainWindow 和 DragMove 问题“只能在鼠标主按钮按下时调用 DragMove。”

TWo*_*ood 5 transparency mainwindow mouseleftbuttondown

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

关闭使用相同窗口样式的对话框窗口后,我的DragMove()事件出现错误MainWindow。当我处理使这个更奇怪的这个例外只发生mouseleftbutton在我的标签上的事件Status BarMainWindow。如果我换了标签按钮并替换mouseleftbuttondownclick事件我没有得到这个错误。

奇怪的是,弹出的对话框窗口没有实现dragmove,我也没有拖拽mainwindow。不知怎的dragmove被我的代码执行返回后调用mainwindow一个后showdialog()调用。

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

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

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

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

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

在此先感谢您的帮助!

TWo*_*ood 4

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