【问题标题】:Prevent mouse events during wpf Window.OnActivate在 wpf Window.OnActivate 期间防止鼠标事件
【发布时间】:2013-02-11 14:00:50
【问题描述】:

是否可以在激活窗口时阻止鼠标事件?

例如,我有一个 C# 窗口,我将焦点更改为其他东西,例如浏览器。当我通过单击重新激活 c# 窗口时,我不希望执行任何鼠标事件。第一次点击窗口应该只是激活它。仅当窗口已激活时才会触发鼠标事件。

【问题讨论】:

    标签: c# wpf


    【解决方案1】:

    当用户点击您的 wpf 控件时将触发一个事件,但您为什么不直接处理该事件呢?

    订阅事件并防止它在可视化树中冒泡:

    private void Panel_KeyDown(object sender, KeyEventArgs e)
    {
        e.Handled = true;
    }
    

    看看这个link,它描述了 WPF 中的事件气泡和隧道。

    【讨论】:

    • 我不想一直阻止它,我想在窗口被点击激活时阻止它。如果它已经被激活,鼠标事件应该被触发。不幸的是,在调用处理程序时,窗口已经设置为已激活,因此我无法检查窗口状态。
    • 我不完全了解您的问题是什么,但您可以考虑覆盖 Window.OnActivated 来处理是否应由您的方法处理事件。 Link to MSDN
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 2021-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多