AvaloniaUI:全局捕获鼠标按钮向上/向下
Posted
技术标签:
【中文标题】AvaloniaUI:全局捕获鼠标按钮向上/向下【英文标题】:AvaloniaUI: Capture mouse button up/down globally 【发布时间】:2021-05-28 21:32:52 【问题描述】:AvaloniaUI 中是否有可能全局捕获鼠标按下按钮的上/下?要在任何控件之外(或可能在任何特定视图模型之外)收到有关此事件的通知?
【问题讨论】:
【参考方案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);
请注意,如果您有多个窗口,这(可能)不会全局工作。
【讨论】:
以上是关于AvaloniaUI:全局捕获鼠标按钮向上/向下的主要内容,如果未能解决你的问题,请参考以下文章
WPF TabControl 如何在鼠标向上而不是鼠标向下更改选项卡?