События KeyDown и KeyUp внутри «Пользовательского элемента управления» - PullRequest
0 голосов
/ 09 марта 2020

У меня есть пользовательский элемент управления, полученный из элемента управления. События мыши, такие как OnMouseLeftButtonDown (MouseButtonEventArgs e), могут использоваться без каких-либо проблем. Теперь я хотел бы комбинацию, например, левой-Ctrl и левой кнопкой мыши. Но я просто не могу отвечать на события клавиатуры в моем «пользовательском элементе управления». Может кто-нибудь дать мне подсказку, как это реализовать?

Этот переопределенный метод работает нормально.

protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e)
{
    base.OnMouseLeftButtonDown(e);

    if (isKeyCtrlDown)
    {
        Debug.WriteLine("Test");
    }
}

И этот переопределенный метод не будет запущен.

protected override void OnKeyDown(KeyEventArgs e)
{
    base.OnKeyDown(e);

    if (e.Key == Key.LeftCtrl)
    {
        isKeyCtrlDown = true;
    }
}

protected override void OnKeyUp(KeyEventArgs e)
{
    base.OnKeyUp(e);

    if (Keyboard.IsKeyUp(Key.LeftCtrl))
    {
        isKeyCtrlDown = false;
    }
}

Спасибо за любую помощь.

...