Próbowałem ten XAML:WPF: Suwak robi podnieść MouseLeftButtonDown lub MouseLeftButtonUp
<Slider Width="250" Height="25" Minimum="0" Maximum="1" MouseLeftButtonDown="slider_MouseLeftButtonDown" MouseLeftButtonUp="slider_MouseLeftButtonUp" />
a to C#:
private void slider_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
sliderMouseDown = true;
}
private void slider_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
sliderMouseDown = false;
}
Zmienna sliderMouseDown nigdy się nie zmienia, ponieważ wydarzenia MouseLeftButtonDown i MouseLeftButtonUp nigdy nie są podniesione. Jak mogę uruchomić ten kod, gdy użytkownik ma lewy przycisk myszy na suwaku, aby ustawić wartość bool na wartość true, a kiedy mysz jest podniesiona, wartość bool jest ustawiona na false?
Dziękuję, mogłem wykorzystać zdarzenie IsMouseCapturedWithinChanged w połączeniu ze zdarzeniami PreviewMouseLeftButtonUp, aby osiągnąć mój ostateczny cel. – Nick
Czy ktoś zna uzasadnienie tego zachowania? – PeterAllenWebb
Powodem tego zachowania jest to, że przycisk obsługuje zdarzenie MouseDown. Domyślnie, jeśli dowolna kontrolka stwierdza, że obsłużyło wydarzenie, nikt inny nie otrzyma powiadomienia, chyba że określi, że chce widzieć również zdarzenia obsługiwane. –