2011-05-05 116 views
0

我有一個WPF窗口。我想當我的鼠標光標在窗口的控制區域之外,我點擊它我希望我的窗口消失是否有任何機制實現它徹底的WPF?鼠標事件處理

回答

1

查看Mouse.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); 
    } 
} 
+0

我是新來WPF可以請你elaborte ??:資源下載澄清是不夠的,我在捕捉老鼠 – 2011-05-05 08:02:30

+0

在這裏你走..希望澄清的東西:) – Arcturus 2011-05-05 08:11:20

+0

嗨大角星,我認爲我不清楚與我的probelm聲明我的Wpfcontrol是一個窗口,而我的窗口/客戶端區域之外是桌面上下文。 d把你已共享的代碼片段,但當我在客戶區/ wpf窗口上下文中單擊鼠標外部時,我看不到任何調用來到OnMouseLeftButtonDown方法 – 2011-05-05 09:04:34