【问题标题】:AvaloniaUI: Capture mouse button up/down globallyAvaloniaUI:全局捕获鼠标按钮向上/向下
【发布时间】:2021-05-28 21:32:52
【问题描述】:

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

【问题讨论】:

    标签: c# .net-core avaloniaui avalonia


    【解决方案1】:

    您可以在 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);
        }
    }
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-18
      • 2011-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多