Класс, владеющий SliderPos
, должен реализовать INotifyPropertyChanged
.(Если ваш Slider.Value
связан с этим свойством)
Редактировать: Это само по себе не работает, так как Уилл правильно заметил, что поток пользовательского интерфейса спит.
Выможно попробовать что-то вроде этого, это работает:
SliderPosition = 0;
DispatcherTimer timer = null;
timer = new DispatcherTimer(TimeSpan.FromSeconds(0.1), DispatcherPriority.Render, delegate
{
SliderPosition += 20;
if (SliderPosition > 100) timer.Stop();
},
Dispatcher.CurrentDispatcher);
timer.Start();
Edit2: Если вы не изменяете какие-либо элементы управления, принадлежащие пользовательскому интерфейсу, вы можете просто использовать любой потоккроме UI-Thread, например:
SliderPosition = 0;
new Thread(new ThreadStart(delegate
{
while (SliderPosition < 100)
{
Thread.Sleep(100);
SliderPosition += 20;
}
})).Start();