C# 本地文件夹中的UWP绑定映像
我的应用程序使用相机拍摄照片,并将其保存为C:\Users…\Pictures\file.PNG。我有一个字符串为“C:\Users\…\Pictures\file.PNG”的对象,并将绑定设置为该字符串,但它不会加载图像。如果我将图像放置到Assets,并将字符串设置为“Assets\file.png”,则可以正常工作。是否可以在资产之外绑定?首先,您需要意识到,您没有访问文件系统的权限,例如在Win32应用程序中。因此,UWP应用程序中的完整路径不再相关。请看一下这个和 我假设您正在使用C# 本地文件夹中的UWP绑定映像,c#,xaml,uwp,C#,Xaml,Uwp,我的应用程序使用相机拍摄照片,并将其保存为C:\Users…\Pictures\file.PNG。我有一个字符串为“C:\Users\…\Pictures\file.PNG”的对象,并将绑定设置为该字符串,但它不会加载图像。如果我将图像放置到Assets,并将字符串设置为“Assets\file.png”,则可以正常工作。是否可以在资产之外绑定?首先,您需要意识到,您没有访问文件系统的权限,例如在Win32应用程序中。因此,UWP应用程序中的完整路径不再相关。请看一下这个和 我假设您正在使用Im
Image
控件来显示图像。比如:
MainPage.xaml
当您了解UWP中的文件访问概念文件时,您可以仔细查看内置的。还有一个示例,说明如何直接访问捕获的图像,而不必与文件名发生冲突。首先,您需要意识到,在Win32应用程序中,您无权访问文件系统。因此,UWP应用程序中的完整路径不再相关。请看一下这个和 我假设您正在使用
Image
控件来显示图像。比如:
MainPage.xaml
当您了解UWP中的文件访问概念文件时,您可以仔细查看内置的。还有一个例子是如何直接访问捕获的图像而不必与文件名发生冲突。您使用什么样的UI控件来显示图像?您可以将源代码直接绑定到某些位图图像,但我建议您首先仔细了解如何在UWP中处理文件以及相机如何工作(在下面的回答中)然后您可以详细介绍绑定。我并不是说你想做的事情是不可能的(当然可能),而是一步一步来。你用什么样的UI控件来显示图像?你可以直接将源代码绑定到一些位图图像,但我建议你首先仔细看看如何在UWP中处理文件以及相机是如何工作的(在我下面的回答中)然后您可以详细介绍绑定。我并不是说你想做的事情是不可能的(肯定是可能的),而是一步一步地去做。
<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>
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;
}
}