ich diesen XAML versucht:WPF: Slider tut erhöhen Mouseleftbuttondown oder MouseLeftButtonUp
<Slider Width="250" Height="25" Minimum="0" Maximum="1" MouseLeftButtonDown="slider_MouseLeftButtonDown" MouseLeftButtonUp="slider_MouseLeftButtonUp" />
Und dieses C#:
private void slider_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
sliderMouseDown = true;
}
private void slider_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
sliderMouseDown = false;
}
Die sliderMouseDown Variable ändert sich nie, weil die Mouseleftbuttondown und MouseLeftButtonUp Ereignisse nie ausgelöst werden. Wie kann ich diesen Code zum Laufen bringen, wenn ein Benutzer die linke Maustaste auf einem Schieberegler hat, um einen bool-Wert auf wahr zu setzen, und wenn die Maus oben ist, wird der bool auf false gesetzt?
Vielen Dank, ich konnte das IsMouseCapturedWithinChanged-Ereignis in Kombination mit den PreviewMouseLeftButtonUp-Ereignissen verwenden, um mein endgültiges Ziel zu erreichen. – Nick
Kennt jemand die Gründe für dieses Verhalten? – PeterAllenWebb
Der Grund für dieses Verhalten ist, dass die Schaltfläche das MouseDown-Ereignis behandelt. Wenn ein Steuerelement angibt, dass es ein Ereignis behandelt hat, wird standardmäßig niemand benachrichtigt, es sei denn, sie haben angegeben, dass auch behandelte Ereignisse angezeigt werden sollen. –