在 WinRT 应用程序中,我有一个带有一些图片的 FlipView myFlipView 和一个 Image myImage。在 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;
}
总而言之,它在 myFlipView 中找到当前图像的 uri,并将该图像设置在 myImage 中,但在 ModifyPicture 中定义了一些修改。它在平板电脑上完美运行,但在带鼠标的计算机上出现一个错误。当我非常快地单击附加到 FlipView 的箭头时,myImage 会显示错误的图片。例如,如果在 myFlipView 我有 10 张图片(p1、p2、...、p10)并且当前选择了 p1,那么当我在 myImage 上更改为 p2 时,也会出现 p2。但是,当我有时在 FlipView 中快速单击时,例如 p9 和 myImage p8。我想这与方法被多次调用但我不知道如何解决它有关。提前感谢您的帮助:)