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"/>