Взгляните на метод Mouse.Capture .Это позволяет вам получать события мыши, даже если мышь находится вне вашего контроля.
Обязательно отпустите мышь, как только вы закончите, хотя вызов Capture с нулевым значением.
Чтобы освободить мышьcapture, вызовите Capture, передав ноль в качестве элемента для захвата.
В конструкторе поместите это:
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);
}
}