Похоже, что объект args, переданный в переопределение OnPreviewMouseLeftButtonDown, описывает текущее (живое) состояние кнопки мыши, а не снимок состояния, присутствующего при возникновении события.
Это правильное поведение? Разве аргументы события не должны отражать данные события в момент возникновения события (моментальный снимок) и не должны автоматически обновляться для отражения текущих данных?
Спасибо,
Ben
<ч />
Пример кода
protected override void OnPreviewMouseLeftButtonDown(MouseButtonEventArgs e)
{
// before MessageBox display, e.ButtonState = Pressed
MessageBox.Show("OnPreviewMouseLeftButtonDown");
// now, e.ButtonState = Released
base.OnPreviewMouseLeftButtonDown(e);
}