UWP应用:已实现网络/项目文件夹PDF显示,求本地应用文件夹图片展示方案
UWP 加载并显示应用文件夹内图片的实现方案
1. 明确图片所在的应用文件夹类型
UWP应用常用的本地存储分为两类:
- 应用安装目录:打包时随应用发布的静态资源,通过
Package.Current.InstalledLocation访问,文件为只读状态。 - 应用本地存储文件夹:运行时应用可读写的存储区域,通过
ApplicationData.Current.LocalFolder访问。
2. 按钮触发加载的具体实现
方案一:加载应用安装目录中的图片
若图片是打包时添加到项目的静态资源(比如放在Assets文件夹):
private async void ShowImageBtn_Click(object sender, RoutedEventArgs e) { // 获取项目Assets文件夹 StorageFolder assetsFolder = await Package.Current.InstalledLocation.GetFolderAsync("Assets"); // 获取目标图片文件 StorageFile imageFile = await assetsFolder.GetFileAsync("demo.jpg"); // 读取文件流并转换为BitmapImage using (IRandomAccessStream stream = await imageFile.OpenAsync(FileAccessMode.Read)) { BitmapImage bitmap = new BitmapImage(); await bitmap.SetSourceAsync(stream); // 将图片赋值给界面上的Image控件(假设控件名为DisplayImage) DisplayImage.Source = bitmap; } }
注意:需确保图片的生成操作设置为内容,否则无法在安装目录中找到文件。
方案二:加载应用本地存储中的图片
若图片是运行时保存到应用本地存储的文件:
private async void ShowLocalImageBtn_Click(object sender, RoutedEventArgs e) { StorageFolder localFolder = ApplicationData.Current.LocalFolder; try { StorageFile imageFile = await localFolder.GetFileAsync("user_saved.png"); using (IRandomAccessStream stream = await imageFile.OpenAsync(FileAccessMode.Read)) { BitmapImage bitmap = new BitmapImage(); await bitmap.SetSourceAsync(stream); DisplayImage.Source = bitmap; } } catch (FileNotFoundException) { // 处理文件不存在的场景,比如给用户提示 // 示例:TipText.Text = "目标图片不存在"; } }
3. XAML界面配置
在XAML中添加触发按钮和图片显示控件:
<StackPanel Margin="20"> <Button Content="显示应用内图片" Click="ShowImageBtn_Click" Margin="0 0 0 10"/> <Image x:Name="DisplayImage" Width="350" Height="350" Stretch="Uniform"/> </StackPanel>
4. 权限说明
访问应用安装目录和本地存储文件夹无需额外声明权限,UWP默认允许应用访问这两个区域;若需访问用户系统的其他文件夹(如图片库、文档),才需要在Package.appxmanifest中添加对应权限声明。
内容的提问来源于stack exchange,提问作者wcdean217
相关产品推荐
相关产品推荐

