Wpf:如何处理和生成事件

本文关键字:事件 处理 何处理 Wpf | 更新日期: 2023-09-27 18:05:15

我有一个不可见的按钮,点击时触发命令,但在它下面我有一个控件,预计将被拖动。但是我的按钮拦截了事件,所以拖拽不会发生。

如果我在按钮上设置IsHitTestVisible=false,那么它下面的控件就会正确地处理拖动。

我想知道我的按钮是否有可能处理其点击命令,但随后以某种方式冒泡事件?

所以有点像IsHitTestVisible=false但是我的按钮仍然能够处理事件。

我正在寻找一个xaml唯一的解决方案,因为这是在app.xaml…

谢谢

Wpf:如何处理和生成事件

我会考虑使用Thumb原语类来代替不可见的Button。

我宁愿使用附加事件,在本例中为"MouseDown",并将其附加到可拖动控件上。这样当它被拖动时,你就会触发MouseDown事件。

例如,您可以在这里了解附加事件,也可以在无数讨论该事件的博客中了解;)

尝试在控件上使用PreviewMouseDown事件而不是MouseDown事件来启动所需的(拖动)逻辑。只有当允许在命令被触发之前执行拖动逻辑时,这才会起作用。

记住在处理程序中设置e.Handled=flase,以便Button将有它的点击。