C# 滑块-捕捉到点并与事件一起拖动
我需要在滑块的拇指拖动到一个新值时触发一个事件,或者使用“捕捉到点”单击到一个新值时触发一个事件。我只希望在值更改时发生此事件,这两种方式是使用鼠标,因此值更改事件将不起作用。您可以尝试此小技巧 首先,需要将UpdateSourceTrigger设置为ExplicitC# 滑块-捕捉到点并与事件一起拖动,c#,wpf,events,slider,C#,Wpf,Events,Slider,我需要在滑块的拇指拖动到一个新值时触发一个事件,或者使用“捕捉到点”单击到一个新值时触发一个事件。我只希望在值更改时发生此事件,这两种方式是使用鼠标,因此值更改事件将不起作用。您可以尝试此小技巧 首先,需要将UpdateSourceTrigger设置为Explicit <Slider Minimum="0" Thumb.DragStarted="Slider_DragStarted" Thumb.DragCompleted="Slider_DragCompl
<Slider Minimum="0"
Thumb.DragStarted="Slider_DragStarted"
Thumb.DragCompleted="Slider_DragCompleted"
Maximum="{Binding YourMaxBinding, Mode=OneWay}"
Value="{Binding CurrentPosition, Mode=TwoWay, UpdateSourceTrigger=Explicit}" />
在视图模型中编写代码
private bool _dontUpdateSliderPosition;
public bool DontUpdateSliderPosition {
get {
return _dontUpdateSliderPosition;
}
set {
if (Equals(value, _dontUpdateSliderPosition)) {
return;
}
_dontUpdateSliderPosition = value;
yourPropertyChangedFunc("DontUpdateSliderPosition");
}
}
private int _currentPosition;
public int CurrentPosition {
get {
return _currentPosition;
}
set {
if (Equals(value, _currentPosition)) {
return;
}
_currentPosition = value;
yourPropertyChangedFunc("CurrentPosition");
}
}
private CodeBehindFuncToChangeTheSliderPosition(){
if (!DontUpdateSliderPosition) {
CurrentPosition = theNewPosition;
}
}
希望这有帮助
private bool _dontUpdateSliderPosition;
public bool DontUpdateSliderPosition {
get {
return _dontUpdateSliderPosition;
}
set {
if (Equals(value, _dontUpdateSliderPosition)) {
return;
}
_dontUpdateSliderPosition = value;
yourPropertyChangedFunc("DontUpdateSliderPosition");
}
}
private int _currentPosition;
public int CurrentPosition {
get {
return _currentPosition;
}
set {
if (Equals(value, _currentPosition)) {
return;
}
_currentPosition = value;
yourPropertyChangedFunc("CurrentPosition");
}
}
private CodeBehindFuncToChangeTheSliderPosition(){
if (!DontUpdateSliderPosition) {
CurrentPosition = theNewPosition;
}
}