现在,我正在应用程序中进行编辑操作。因此,在编辑操作中可以更改图像,并且在同一时间不能重命名联系人图像的文件名(在一次操作中将更改图像文件,但所有此文件将使用相同的名称)
我使用了CopyAsync
方法的重载(该方法here的文档),据我所知,必须将文件替换为同名的现有文件。
我得到imageFile
的{{1}}变量。每当我通过FileOpenPicker
选择图像时,下面的代码就会运行。当我在结果FileOpenPicker
上重新选择图像时,UI控件将显示先前选择的图像。我希望Image
将查看我选择的最后一张图像,但这不会发生。
Image
在这种情况下,也许我不正确地理解 public BitmapImage Image { set; get; }
//Copy of the file that saved in temporary storage
StorageFile fileForView = await imageFile.CopyAsync
(ApplicationData.Current.TemporaryFolder,
fileName,
NameCollisionOption.ReplaceExisting);
Image = new BitmapImage(new Uri(fileForView.Path));
方法的逻辑,请告诉我如何使我的计划与此方法一起使用。否则请提供您的解决方案,因为我现在不知道该怎么做。
我也尝试使用CopyAsync
方法来做到这一点。但是仍然没有结果。我是这样做的:
CopyAndReplaceAsync
答案 0 :(得分:0)
我希望“图片”将查看我选择的最后一张图片,但不会发生。
上面的CopyAsync
方法是正确的,并且我已经使用以下代码进行了测试,效果很好。
private async void ListOption_ItemClick(object sender, ItemClickEventArgs e)
{
FileOpenPicker openPicker = new FileOpenPicker();
openPicker.ViewMode = PickerViewMode.Thumbnail;
openPicker.SuggestedStartLocation = PickerLocationId.PicturesLibrary;
openPicker.FileTypeFilter.Add(".jpg");
openPicker.FileTypeFilter.Add(".jpeg");
openPicker.FileTypeFilter.Add(".png");
StorageFile file = await openPicker.PickSingleFileAsync();
if (file != null)
{
StorageFile fileForView = await file.CopyAsync(ApplicationData.Current.TemporaryFolder, file.Name, NameCollisionOption.ReplaceExisting);
Image = new BitmapImage(new Uri(fileForView.Path));
TestImg.Source = Image;
}
else
{
}
}