0

我已经阅读了几篇关于相关问题的文章,这一篇似乎不一致。

我有一个 datagrid 控件,我需要在单击鼠标时在其中捕获鼠标位置。我有在 mouseup 和 mousedown 事件处理程序中执行此操作的代码。mousedown 是我想要的,但该事件永远不会被触发。我把代码放在那里并设置了一个断点,但它永远不会到达那个点。然而,mouseup 确实会按应有的方式触发,但这不是我需要的事件,而且我得到了不可预测的结果。

有没有关于这方面的文章来解释发生了什么?我认为它是某种路由事件问题。但是为什么 mouseup 可以工作,而 mousedown 不行呢?如何修复我的代码,以便所有事件在它们应该触发的时候触发?

4

1 回答 1

0

问题正在发生,因为数据网格中的单元格正在捕获 MouseDown 事件。您可以尝试通过以下方式在代码中订阅该事件:

DataGridName.AddHandler(MouseDownEvent, new MouseButtonEventHandler(DataGridName_MouseDown), true);

或者,如果这不是您想要做的,我相信还有一个 PreviewMouseDown 事件,该事件已经分配给您可以使用的 DataGrid。

我希望这有帮助。

于 2011-05-09T16:04:05.453 回答