我正在显示Popup
以响应按钮点击(popup.IsOpen = true;
)。弹出窗口包含一个ComboBox,当我单击组合框中的一个项目时,SelectionChanged事件所做的一件事就是隐藏弹出窗口。
Popup出现在DataGrid
上,我也在我的页面上,我发现鼠标点击组合框也被我上传的MouseUp事件所取代数据网格。知道发生了什么事吗?
答案 0 :(得分:2)
MouseUp
事件的路由策略类型为Bubbling
。使用此类策略的事件将链传递到父控件。由于Popup
是DataGrid
的孩子,因此该事件将“冒泡”到DataGrid
。如果您希望事件不会冒泡,可以尝试使用PreviewMouseUp
,它具有Tunneling
路由策略,并将链接“隧道”到子控件。这是Routing Strategies
{{1}}的合适overview
。
答案 1 :(得分:0)
我遇到了同样的问题。奇怪的是,当代码在调试器中运行时不会发生 - 它只发生在发布版本中。它似乎是WPF中的一个错误。尝试捕获单击并将事件设置为处理不起作用。
我的解决方法是,当弹出窗口打开时,告诉下面的控件忽略点击。