Другой способ сделать это (и, возможно, лучше в зависимости от вашего сценария) - зарегистрировать обработчик событий в процедурном коде, как показано ниже:
this.AddHandler
(
Slider.MouseLeftButtonDownEvent,
new MouseButtonEventHandler(slider_MouseLeftButtonDown),
true
);
Пожалуйста, обратите внимание на истинный аргумент. В основном это говорит о том, что вы хотите получить это событие, даже если оно помечено как обработанное. К сожалению, подключить обработчик событий, как это, можно только из процедурного кода, а не из xaml.
Другими словами, с помощью этого метода вы можете зарегистрировать обработчик событий для обычного события (которое всплывает) вместо события предварительного просмотра, которое туннелирует (и, следовательно, происходит в разное время).
См. Дополнительную информацию на боковой панели «Копание глубже» на стр. 70 WPF Unleashed .