AvaloniaUI:全局向上/向下捕获鼠标按钮

问题描述

AvaloniaUI 是否有可能全局捕获向上/向下鼠标按键?要在任何控件之外(或可能在任何特定视图模型之外)收到有关此事件的通知

解决方法

您可以在 MainWindow 的代码隐藏中侦听这些事件,也可以使用 handledEventsToo: true 处理其他控件已经处理过的事件,如下所示:

public class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
        this.DataContext = new MainWindowViewModel();

        this.AddHandler(PointerPressedEvent,MouseDownHandler,handledEventsToo: true);
        this.AddHandler(PointerReleasedEvent,MouseUpHandler,handledEventsToo: true);

        #if DEBUG
        this.AttachDevTools();
        #endif
    }

    private void MouseUpHandler(object sender,PointerReleasedEventArgs e)
    {
        System.Diagnostics.Debug.WriteLine("Mouse released.");
    }

    private void MouseDownHandler(object sender,PointerPressedEventArgs e)
    {
        System.Diagnostics.Debug.WriteLine("Mouse pressed.");
    }

    private void InitializeComponent()
    {
        AvaloniaXamlLoader.Load(this);
    }
}

请注意,如果您有多个窗口,这(可能)将无法全局工作。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...