奇怪的问题 - 弹出窗口中的鼠标点击被下面的控件捕获

And*_*ens 6 wpf

我正在显示一个Popup响应按钮单击(popup.IsOpen = true;).弹出窗口包含一个ComboBox,当我单击组合框中的一个项目时,SelectionChanged事件所做的一件事就是隐藏弹出窗口.

弹出窗口出现DataGrid在我的页面上,我发现组合框上的鼠标点击也被我在DataGrid上获得的MouseUp事件所拾取.知道发生了什么事吗?

Mas*_*ash 3

MouseUp事件具有类型为 的路由策略Bubbling。使用此类策略的事件将沿链向上传递到父控件。由于Popup是 的子级DataGrid,因此该事件将“冒泡”到DataGrid。如果您不希望事件冒泡,您可以尝试使用PreviewMouseUp,它具有Tunneling路由策略,并将沿着链“隧道”到子控件。这里是一个体面overviewRouting Strategies