WPF的Image控件赋值问题

gtrclover 2013-09-07 02:55:27
我从一个文件夹里取出了所有图片文件的路径,放到了一个List<String>里,现在我要将这些图片路径赋给一个Image控件,使其显示这些图片,要怎样写赋值语句?
...全文
426 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Bob66666 2013-09-10
  • 打赏
  • 举报
回复

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.IO;
using System.Diagnostics;
namespace WpfApplication5
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>c
public partial class MainWindow : Window
{
string[] files;
int n = 0;
List<BitmapImage> bit = new List<BitmapImage> { };
public MainWindow()
{
InitializeComponent();
}

private void button1_Click(object sender, RoutedEventArgs e)
{
image1.Source = bit[n];
label1.Content = bit[n].UriSource.ToString();
if (n + 1 < bit.Count)
{
n++;
}
else n = 0;
}

private void Window_Loaded(object sender, RoutedEventArgs e)
{
files = Directory.GetFiles(@"C:\Documents and Settings\Administrator\My Documents\images", "*.jpg",
SearchOption.AllDirectories);

for (int i = 0; i < files.Length; i++) {
//bit[i].UriSource = new Uri(files[i]);
BitmapImage bitn = new BitmapImage(new Uri(files[i]));
bit.Add(bitn);
Debug.WriteLine(files[i]);
}
if (bit.Count > 0) image1.Source = bit[1];
}
}
}
lh520cq 2013-09-10
  • 打赏
  • 举报
回复
引用 7 楼 pangpang_1991 的回复:
[quote=引用 6 楼 qldsrx 的回复:] 一个图片路径只能产生一个BitmapImage,多个一起显示就放多个Image控件到ListBox里面去显示吧。
那么,如果只显示一个图片的话,怎样能够改变Image的Source呢,比如点一下按钮就改变一个Source路径[/quote] +1
DENQH 2013-09-08
  • 打赏
  • 举报
回复
foreach(string path in list1) { Image1.Source=new BitmapImage(new Uri(path, UriKind.Relative)); }
gtrclover 2013-09-07
  • 打赏
  • 举报
回复
引用 6 楼 qldsrx 的回复:
一个图片路径只能产生一个BitmapImage,多个一起显示就放多个Image控件到ListBox里面去显示吧。
那么,如果只显示一个图片的话,怎样能够改变Image的Source呢,比如点一下按钮就改变一个Source路径
qldsrx 2013-09-07
  • 打赏
  • 举报
回复
一个图片路径只能产生一个BitmapImage,多个一起显示就放多个Image控件到ListBox里面去显示吧。
gtrclover 2013-09-07
  • 打赏
  • 举报
回复
引用 3 楼 qldsrx 的回复:
[quote=引用 1 楼 caozhy 的回复:] image.Source = Image.FromFile(list[i]);
看清楚问题,他问的是WPF,不是WinForm。Image.FromFile返回的是System.Drawing.Image对象,无法给那个控件设置值,那个控件必须是ImageSource对象才行,根本不是一个概念。 这里可以直接用new BitmapImage(Uri)来构造ImageSource对象,但需要留意这个Uri的格式。[/quote] 那么能否解释下,如果用new BitmapImage(Uri)的方法,Uri内怎样设置多个图片的路径呢?
threenewbee 2013-09-07
  • 打赏
  • 举报
回复
引用 3 楼 qldsrx 的回复:
[quote=引用 1 楼 caozhy 的回复:] image.Source = Image.FromFile(list[i]);
看清楚问题,他问的是WPF,不是WinForm。Image.FromFile返回的是System.Drawing.Image对象,无法给那个控件设置值,那个控件必须是ImageSource对象才行,根本不是一个概念。 这里可以直接用new BitmapImage(Uri)来构造ImageSource对象,但需要留意这个Uri的格式。[/quote] 没注意。你纠正的对。
qldsrx 2013-09-07
  • 打赏
  • 举报
回复
引用 1 楼 caozhy 的回复:
image.Source = Image.FromFile(list[i]);
看清楚问题,他问的是WPF,不是WinForm。Image.FromFile返回的是System.Drawing.Image对象,无法给那个控件设置值,那个控件必须是ImageSource对象才行,根本不是一个概念。 这里可以直接用new BitmapImage(Uri)来构造ImageSource对象,但需要留意这个Uri的格式。
人生导师 2013-09-07
  • 打赏
  • 举报
回复
foreach(string imgPath in List) { Image.Source =Image.FromFile(imgPath ) }
threenewbee 2013-09-07
  • 打赏
  • 举报
回复
image.Source = Image.FromFile(list[i]);

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧