UWP绑定本地文件夹中的图像

时间:2018-02-06 11:43:52

标签: c# xaml uwp

我的应用程序使用相机拍摄照片并将其保存为C:\ Users ... \ Pictures \ file.PNG。我有一个字符串“C:\ Users \ ... \ Pictures \ file.PNG”的对象和绑定设置为该字符串,但它不加载图像。如果我将图像放置到Assets并将字符串设置为“Assets \ file.png”它可以工作。是否可以在Assets之外绑定?

1 个答案:

答案 0 :(得分:3)

首先,您需要意识到可以访问文件系统,例如在Win32应用程序中。因此,UWP应用程序中的完整路径不再相关。请查看此link to explain it morenice 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。还有一些示例如何直接访问捕获的图像而不必烦恼文件名。