是否可以获得任何 MouseMove 事件的通知,即使是那些标记为已处理的事件?我有以下 Xaml:
<Grid x:Name="ParentContainer">
<ScrollViewer>
...
</ScrollViewer>
</Grid>
我的目标是获取 ScrollViewer 上的所有 MouseMove 事件,或类似 ParentContainer 之类的合理接近的事件,而无需在 ScrollViewer 上设置 ManipulationMode="Control" 以获得最佳性能。
在 ScrollViewer 上设置 ManipulationMode="Control" 时,在 ParentContainer(或 ScrollViewer)上处理 MouseMove 有效,但在 ManipulationMode="System" 时无效。听起来像是在提高 Mango 的性能,ScrollViewer 开始吞下 MouseMove 事件以提高性能。但是,我希望能够获得这些已处理的事件,如下所示:
ParentContainer.AddHandler(???.MouseMoveEvent, MyMouseMoveHandler, true);
在 Silverlight 或 WPF 中,我希望该代码将所有鼠标事件路由到 MyMouseMoveHandler,甚至处理事件。不幸的是,我找不到要传递给 AddHandler 的 MouseMoveEvent 的静态定义。
有没有人在 WP7 中使用 AddHandler 和 MouseMoveEvent 成功?
我最后的手段可能是在 ScrollViewer 顶部添加一个具有 Background="Transparent" 的叠加层,它将捕获所有鼠标事件,但不将它们标记为已处理,并查看它们是否向下传播到 ScrollViewer。