Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 设置图像源_C#_Wpf_Image_Windows Store Apps_Imagesource - Fatal编程技术网

C# 设置图像源

C# 设置图像源,c#,wpf,image,windows-store-apps,imagesource,C#,Wpf,Image,Windows Store Apps,Imagesource,我正在尝试将图像源设置为来自我的计算机的内容(不在资源中)。 这就是我试图做到的: Uri uri = new Uri(@"D:\Riot Games\about.png", UriKind.Absolute); ImageSource imgSource = new BitmapImage(uri); this.image1.Source = imgSource; 我尝试了几乎所有我能在互联网上找到的东西,但似乎没有任何效果 知道为什么吗 XAML: 您无法直接从windows metro

我正在尝试将图像源设置为来自我的计算机的内容(不在资源中)。
这就是我试图做到的:

Uri uri = new Uri(@"D:\Riot Games\about.png", UriKind.Absolute);
ImageSource imgSource = new BitmapImage(uri);

this.image1.Source = imgSource;
我尝试了几乎所有我能在互联网上找到的东西,但似乎没有任何效果

知道为什么吗

XAML:


您无法直接从windows metro应用程序访问磁盘驱动器。摘自

您可以访问某些文件系统位置,如应用程序安装 目录、应用程序数据位置和下载文件夹,以及Windows 默认情况下存储应用程序。应用程序还可以访问其他位置 通过文件选择器,或通过声明功能

但是有一些特殊的文件夹,您可以通过启用包清单文件中的功能来访问,如
图片库
、文档库等。因此,在从清单文件启用图片库(在图片库文件夹中复制about.png文件)后,此代码将起作用

但理想的解决方案是将您的文件包含在应用程序中,并将其构建操作设置为内容,以便可以将其与其他内容文件一起复制到您的Appx文件夹中。然后您可以像这样设置图像源-

    public MainPage()
    {
        this.InitializeComponent();
        Uri uri = new Uri(BaseUri, "about.png");
        BitmapImage imgSource = new BitmapImage(uri);
        this.image1.Source = imgSource;
    }
或者,您可以仅在XAML中执行此操作:

<Image x:Name="image1" Source="ms-appx:/about.png"/>


以下是您可以从应用程序访问的特殊文件夹列表-

  • 本地应用程序数据
  • 漫游应用程序数据
  • 临时应用程序数据
  • 应用程序安装位置
  • 下载文件夹
  • 文档库
  • 音乐库
  • 图片库
  • 视频库
  • 可移动设备
  • 家庭组
  • 媒体服务器设备
  • 要从清单文件启用功能,请双击解决方案中的
    Package.appxmanifest
    文件,并选中“功能”选项卡下的
    Pictures Library
    复选框,以便为应用程序启用它。同样,您也可以对其他要访问的文件夹执行此操作


    它必须工作。能否显示use.xaml?可能是由于用户权限的原因?尝试以管理员身份运行.exe。以管理员身份运行visual studio。够了吗?(效果不太好)。我不知道如何以管理员的身份运行此metro应用程序为什么要同时在XAML中设置图像源和代码隐藏?@RohitVats,这有关系吗?在XAML中,我刚刚检查了它的外观。我现在删除了它(也编辑了我的帖子)。它不会改变任何东西…我从整个计算机获取图像,我无法将它们放在特定位置或嵌入到我的资产中。我担心,由于metro应用程序的限制,这是不可能的。我使用StorageFile设置了图像源。但现在还有另一个问题。如何使用直接uri而不是文件选择器设置StorageFile?这就是我在回答中提到的-
    应用程序还可以通过文件选择器访问其他位置,而不是直接通过uri访问特殊文件夹。直接设置图像源可以很好地编译,但在运行时会崩溃,说明您无权访问该文件夹。看到了,谢谢。我敢肯定我以前看过,但我没有读到:P非常感谢!。
    
        public MainPage()
        {
            this.InitializeComponent();
            Uri uri = new Uri(BaseUri, "about.png");
            BitmapImage imgSource = new BitmapImage(uri);
            this.image1.Source = imgSource;
        }
    
    <Image x:Name="image1" Source="ms-appx:/about.png"/>