MouseUp происходит прежде MouseDown [закрыт]

117
18 сентября 2019, 16:50

Я работаю над приложением. Используемые технологии C# и WPF. В приложении имеется кнопка (Button). Читая лог, становится понятно, что при нажатии этой кнпки иногда MouseUp происходит прежде MouseDown. Почему так происходит и как можно исправить ситуацию?

Answer 1

Если коротко, то попробуйте использовать Preview... события:

    private void Button_PreviewMouseDown(object sender, MouseButtonEventArgs e)
    {
        Debug.WriteLine("down");
    }
    private void Button_PreviewMouseUp(object sender, MouseButtonEventArgs e)
    {
        Debug.WriteLine("up");
    }

Ну а если интересно разобраться подробнее:

For instance, a Windows Presentation Foundation (WPF) Button suppresses MouseLeftButtonDown and MouseLeftButtonDown bubbling events raised by the Button or its composite elements in favor of capturing the mouse and raising a Click event that is always raised by the Button itself. The event and its data still continue along the route, but because the Button marks the event data as Handled, only handlers for the event that specifically indicated they should act in the handledEventsToo case are invoked.

Кстати, если кликнуть правой кнопкой мыши, всё будет работать.

READ ALSO
Клонирование задания печати C#

Клонирование задания печати C#

Вопрос в следующем: мне нужно реализовать на C# решение, позволяющее печатать на 2 принтера одновременно (один из них установлен по умолчанию...

113
Разрушение объекта на мелкие части в Unity 3D

Разрушение объекта на мелкие части в Unity 3D

Каким способом можно разрушить объект на мелкие частицы? С помощью Particle System как примерно это сделать? Например, чтоб рассыпался 2д квадрат

145
Циклы со списками - C#

Циклы со списками - C#

Подскажите как правильно сделатьЕсть список, с неопределенным количеством записей:

130
Деплой на Github при помощи appveyor

Деплой на Github при помощи appveyor

Хотелось бы попробовать на открытом проекте деплой на GitHubНачал пробовать appveyor

106