我的应用程序使用相机拍摄照片并将其保存为C:\ Users ... \ Pictures \ file.PNG。我有一个字符串“C:\ Users \ ... \ Pictures \ file.PNG”的对象和绑定设置为该字符串,但它不加载图像。如果我将图像放置到Assets并将字符串设置为“Assets \ file.png”它可以工作。是否可以在Assets之外绑定?
答案 0 :(得分:3)
首先,您需要意识到不可以访问文件系统,例如在Win32应用程序中。因此,UWP应用程序中的完整路径不再相关。请查看此link to explain it more和nice one here。
我假设您正在使用Image
控件来显示图像。类似的东西:
MainPage.xaml中
<Page
x:Class="App1.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:App1"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
Loaded="MainPage_OnLoaded">
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Image Name="Img1" />
</Grid>
</Page>
MainPage.xaml.cs中
private async void MainPage_OnLoaded(object sender, RoutedEventArgs e)
{
var file = await Windows.Storage.KnownFolders.CameraRoll.GetFileAsync("p1.png");
using (var imgStream = await file.OpenStreamForReadAsync())
{
var bitmapImg = new BitmapImage();
bitmapImg.SetSource(imgStream.AsRandomAccessStream());
Img1.Height = bitmapImg.PixelHeight; //Need to take care of proper image-scaling here
Img1.Width = bitmapImg.PixelWidth; //Need to take care of proper image-scaling here
Img1.Source = bitmapImg;
}
}
当您了解UWP中的文件访问概念文件时,您可以仔细查看内置camera control support。还有一些示例如何直接访问捕获的图像而不必烦恼文件名。