【发布时间】:2011-05-05 07:22:22
【问题描述】:
我有一个 WPF 窗口。我希望当我的鼠标光标位于窗口的控制区域之外并且我单击它时我希望我的窗口消失 有没有任何机制可以通过 WPF 实现它??
【问题讨论】:
标签: wpf wpf-controls binding
我有一个 WPF 窗口。我希望当我的鼠标光标位于窗口的控制区域之外并且我单击它时我希望我的窗口消失 有没有任何机制可以通过 WPF 实现它??
【问题讨论】:
标签: wpf wpf-controls binding
看看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);
}
}
【讨论】: