Мне нужно создать что-то вроде gif из четырех кадров, получаемых из API.
Я получил изображение в xaml:
Image Source="{Binding FrameWebcam,Mode=TwoWay}"
HorizontalOptions="FillAndExpand"
VerticalOptions="FillAndExpand"/>
И свойство в моем ViewModel
:
public ImageSource FrameWebcam
{
get { return _FrameWebcam; }
set
{
_FrameWebcam = value;
OnPropertyChanged();
}
}
Я могу показать изображение без проблем.Мне нужно взять из списка ImageSource
каждый элемент и установить свойство FrameWebcam
, по одному элементу за раз, от первого до последнего и запустить его снова (для создания эффекта Gif).Я подумал что-то вроде этого: создать задачу:
private Task SetFrameTask;
и создать экземпляр в конструкторе моего ViewModel:
SetFrameTask = new Task(() =>
{
while (true)
{
this.SetFrame();
Task.Delay(1000);
}
});
private void SetFrame()
{
foreach (var frame in framesWebcam)
{
FrameWebcam = frame;
Task.Delay(250);
}
}
SetFrameTask.Start();
Содержимое списка может измениться, поэтому я хочу остановить этоцикл, измените содержимое списка и запустите его снова, чтобы создать еще один Gif
.Проблема в том, что только иногда изображение появляется, и в большинстве случаев отображается любое изображение.Как я могу улучшить это?