В приложении WinRT у меня есть один FlipView myFlipView с изображениями и одним изображением myImage. На событии myFlipView в SelectionChanged есть следующий метод:Ошибка в методе async
async private void myFlipView_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (myFlipView == null) return;
Uri newUri = new Uri("ms-appx://" + (((BitmapImage)(((Image)(((ContentControl)(myFlipView.SelectedItem)).Content)).Source)).UriSource.AbsolutePath));
StorageFile file = await StorageFile.GetFileFromApplicationUriAsync(newUri);
WriteableBitmap wb = new WriteableBitmap(1, 1);
if (file != null)
{
using (IRandomAccessStream fileStream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read))
{
await wb.SetSourceAsync(fileStream);
}
}
wb = ModifyPicture(wb);
myImage.Source = wb;
}
Подводя итог он находит УИР текущего изображения в myFlipView и установить этот образ в myImage, но с некоторыми изменениями, определенных в ModifyPicture. Он отлично работает на планшетах, но на компьютерах с мышами есть одна ошибка. Когда я быстро нажимаю стрелки, прикрепленные к FlipView, myImage показывает неправильное изображение. Например, если в myFlipView у меня есть 10 изображений (p1, p2, ..., p10) и в настоящее время p1 выбрано, когда я изменяюсь на p2 на myImage, также появляется p2. Но когда я часто нажимаю очень быстро в FlipView, у меня есть, например, p9 и myImage p8. Я полагаю, это связано с тем, что метод называется много раз, но я не знаю, как его исправить. Заранее благодарю за помощь :)
Можете ли вы дать мне весь проект, чтобы я мог проверить? – Xyroid