我有一个WPF窗口。我希望当我的鼠标光标位于窗口的控制区域之外时我点击它我希望我的窗口消失是否有通过WPF实现它的任何机制?
答案 0 :(得分:1)
查看Mouse.Capture方法。这样,即使鼠标不在您的控制范围内,也可以获得鼠标事件。
确保在完成后通过使用null调用Capture来释放鼠标。
要释放鼠标捕获,请调用Capture传递null作为要捕获的元素。
在构造函数中放置:
public MyControl()
{
//Other stuff like initialize component
Mouse.Capture(this);
MouseLeftButtonDown += OnMouseLeftButtonDown;
}
然后实现该方法:
private void OnMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
if(!this.IsMouseOver)
{
Close(); //your closing implementation here
Mouse.Capture(null);
}
}