在我的WPF中,每次用户单击右键时,我都希望屏幕上的图像发生变化。问题是我总是有同样的错误信息:
'无效的URI:无法确定URI的格式。'
这是代码:
git config --file=/usr/local/Homebrew/.git/config --get homebrew.devcmdrun <pid>
当我尝试使用一个字符串时,就像这样:
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++;
}
它工作正常,但是一旦它在列表中,它就找不到文件路径 - 至少,这对我来说是这样的。
知道如何解决这个问题以及我在哪里犯错?
答案 0 :(得分:1)
这是因为.ToString()
通常返回一个对象的命名空间(除非重写),在本例中是List的命名空间;您需要将实际列表值逐个传递到Uri
构造函数。
您需要做的是传递实际路径:
string ShowPicture = portraits[counter % portraits.Count];
image.Source = new BitmapImage(new Uri(ShowPicture));
答案 1 :(得分:0)
您好,您将其链接到列表对象,而不是列表中的元素
这可以解决您的问题:
image.Source = new BitmapImage(new Uri(portraits[0].ToString()));
将获得pic1
如果你想获得pic2
你需要写:
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
肖像,让我准确了解您的预期结果,我将添加更多详细信息