WPF Slider覆盖ValueProperty

时间:2013-07-16 10:38:39

标签: c# wpf slider

我正在播放音频。当前曲目的位置由silder显示。滑块的值绑定到每40ms更新一次的属性。问题是,当用户拖动滑块的拇指时,位置再次更新(定时器每40ms)。结果,用户无法改变拇指。我想创建一个滑块,在用户拖动滑块时不会更新其value属性。

我尝试过这样的事情:

public class SliderDragPriority : Slider
{
    bool allowvaluechange = true;

    protected override void OnValueChanged(double oldValue, double newValue)
    {
        if (allowvaluechange)
            base.OnValueChanged(oldValue, newValue);
        //else -> don't change value
    }

    protected override void OnThumbDragDelta(System.Windows.Controls.Primitives.DragDeltaEventArgs e)
    {
    }

    protected override void OnThumbDragStarted(System.Windows.Controls.Primitives.DragStartedEventArgs e)
    {
        base.OnThumbDragStarted(e);
        allowvaluechange = false;
    }

    protected override void OnThumbDragCompleted(System.Windows.Controls.Primitives.DragCompletedEventArgs e)
    {
        allowvaluechange = true;
        base.OnThumbDragCompleted(e);
    }
}

代码的问题是,OnValueChanged不会影响value属性。

0 个答案:

没有答案