在WinRT應用程序中,我有一個帶有一些圖片和一個Image myImage的FlipView myFlipView。在myFlipView的事件的SelectionChanged有以下方法:異步方法中的錯誤
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;
}
綜上所述發現當前圖像的URI在myFlipView並設置圖像MYIMAGE但在ModifyPicture定義了一些修改。它可以在平板電腦上完美工作,但在使用鼠標的電腦上卻有一個錯誤。當我點擊連接到FlipView的箭頭非常快,然後myImage顯示錯誤的圖片。例如,如果在myFlipView中有10張圖片(p1,p2,...,p10),並且當前選擇了p1,當我在myImage上更改爲p2時,也會出現p2。但是當我在FlipView中點擊的速度非常快時,例如p9和myImage p8。我認爲這與事實有關,該方法被稱爲多次,但我不知道如何解決它。預先感謝您的幫助:)
你可以給我整個項目,我可以檢查嗎? – Xyroid 2013-04-09 09:49:59