c# - 在运行时 c# (uwp) 上将图像添加到资产
问题描述
我正在尝试添加图像功能。用户可以在其中上传项目的图片,它将将该图片添加到我的项目资产中以供将来使用。这是我的代码:
private async void PickAFileButton_ClickAsync(object sender, RoutedEventArgs 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)
{
// Application now has read/write access to the picked file
String a = "ms-appx:///Assets/" + file.Name;
theItem.Source = new BitmapImage(new Uri(a));
}
else
{
theImage.Text = "Operation cancelled.";
}
}
如何将给定的图片添加到我的项目的资产文件夹中,以便我可以在旁边显示它,并将其用于其他用途?
我将非常感谢任何帮助。
解决方案
如何将给定的图片添加到我的项目的资产文件夹
uwp 项目的 assets 文件夹在运行时模型中是只读的,我们无法在运行时添加图片。我们建议使用Local
文件夹来替换Assets
文件夹。
private async void PickAFileButton_ClickAsync(object sender, RoutedEventArgs 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)
{ await file.CopyAsync( ApplicationData.Current.LocalFolder );
// Application now has read/write access to the picked file
String a = "ms-appdata:///local/" + file.Name;
theItem.Source = new BitmapImage(new Uri(a));
}
else
{
theImage.Text = "Operation cancelled.";
}
}