Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.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# 无法获取Uri的文件路径_C#_Wpf_List_Uri - Fatal编程技术网

C# 无法获取Uri的文件路径

C# 无法获取Uri的文件路径,c#,wpf,list,uri,C#,Wpf,List,Uri,在我的WPF中,每当用户单击右键时,我希望屏幕上的图像发生变化。问题是,我始终收到相同的错误消息: '无效URI:无法确定URI的格式。' 代码如下: string pic1 = @"C:/Users/Milk/Desktop/exercises/wpf_1/portraits/1.png"; string pic2 = @"C:/Users/Milk/Desktop/exercises/wpf_1/portraits/2.png"; private void buttonRight_Clic

在我的WPF中,每当用户单击右键时,我希望屏幕上的图像发生变化。问题是,我始终收到相同的错误消息:

'无效URI:无法确定URI的格式。'

代码如下:

string pic1 = @"C:/Users/Milk/Desktop/exercises/wpf_1/portraits/1.png";
string pic2 = @"C:/Users/Milk/Desktop/exercises/wpf_1/portraits/2.png";

private void buttonRight_Click(object sender, RoutedEventArgs e)
{
     List<string> portraits = new List<string>();
     portraits.Add(pic1);
     portraits.Add(pic2);
     string ShowPicture = portraits[counter % portraits.Count];
     image.Source = new BitmapImage(new Uri(portraits.ToString()));
     counter++;
}
它工作得很好,但是一旦它在列表中,它就找不到文件路径——至少对我来说是这样的


知道如何修复此问题以及我在哪里出错吗?

您好,您正在将其链接到列表对象,而不是列表中的元素

这将解决您的问题:

image.Source = new BitmapImage(new Uri(portraits[0].ToString()));
那将得到图片1

如果你想拍照片的话

你需要写:

image.Source = new BitmapImage(new Uri(portraits[1].ToString()));
如果你想得到这两个图片,你需要添加一个循环

比如:

for (int i=0 ; i < portraits.count ; i++) 
image.Source = new BitmapImage(new Uri(portraits[i].ToString()));
//..Do the rest 
for(int i=0;i

肖像,让我确切地知道您的预期结果,我将添加更多详细信息,因为
.ToString()
通常返回对象的名称空间(除非重写),在本例中,该名称空间是List的名称空间;您需要将实际列表值逐个传递到
Uri
构造函数中

您需要做的是按实际路径传递:

string ShowPicture = portraits[counter % portraits.Count];
image.Source = new BitmapImage(new Uri(ShowPicture));

ShowPicture没有他想要显示的图片的路径,但您的答案是正确的,他正在将其保存到对象列表中,正如您所说,使用toString()将返回类似于A929D9933929919-->对象引用的内容
string ShowPicture = portraits[counter % portraits.Count];
image.Source = new BitmapImage(new Uri(ShowPicture));