Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在wpf Window.on激活期间防止鼠标事件_C#_Wpf - Fatal编程技术网

C# 在wpf Window.on激活期间防止鼠标事件

C# 在wpf Window.on激活期间防止鼠标事件,c#,wpf,C#,Wpf,当窗口被激活时,是否可以防止鼠标事件 例如,我有一个C#窗口,我将焦点更改为其他对象,例如浏览器。当我点击c#窗口重新激活它时,我不希望执行任何鼠标事件。第一次点击窗口应该会激活它。仅当窗口已激活时才会触发鼠标事件。将触发一个事件,然后用户单击wpf控件,但为什么不直接处理该事件呢 订阅事件并防止其在可视树中冒泡: private void Panel_KeyDown(object sender, KeyEventArgs e) { e.Handled = true; } 看看这个,它

当窗口被激活时,是否可以防止鼠标事件


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

将触发一个事件,然后用户单击wpf控件,但为什么不直接处理该事件呢

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

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

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

我不想一直阻止它,我想在窗口被点击激活时阻止它。如果已激活,则应触发鼠标事件。不幸的是,在调用处理程序时,窗口已设置为“已激活”,因此我无法检查窗口状态。我不完全了解您的问题所在,但您可以考虑覆盖
窗口。OnActivated
用于处理是否应由您的方法处理事件。