Мышь Обработка событий - PullRequest
0 голосов
/ 05 мая 2011

У меня есть окно WPF. Я хочу, чтобы мой курсор мыши находился за пределами области управления окна, и я щелкаю по нему. Я хочу, чтобы мое окно исчезло, есть ли какой-нибудь механизм для достижения его полного WPF ??

1 Ответ

1 голос
/ 05 мая 2011

Взгляните на метод 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);
    } 
}
...