在很多情况下都需要显示图片,如果图片太多,并且图片还比较大,直接显示很可能很卡,这时用缩略图显示图片预览,然后再点击缩略图时显示大图,下面代码就是解决这种问题。
imgcount = imageList.Count;
for (int i = 0; i < imgcount; i++)
{
imgFileName = imageList[i];
BitmapImage image = new BitmapImage();
image.BeginInit();
image.CacheOption = BitmapCacheOption.None;
image.UriSource = new Uri(imgFileName);
image.DecodePixelHeight = 210; //缩略图高度
image.EndInit();
System.Windows.Controls.Image addimg = new System.Windows.Controls.Image();
addimg.Source = image;
addimg.Name = "img" + i.ToString();
addimg.Stretch = Stretch.Uniform; //必须加拉伸情况,否则前面缩略图没有定宽度,图片会没有宽度显示不了图片
addimg.MouseDown += imageMouseDown; //点击图片时响应函数,也就是显示大图
imgPanel.Children.Add(addimg);
}
//点击缩略图响应函数
private void imageMouseDown(object sender, MouseButtonEventArgs e)
{
Image img = (Image)e.OriginalSource;
string no = img.Name.Substring(3, img.Name.Length - 3);
int i = Convert.ToInt32(no);
lbCur.Content = (i + 1).ToString();
image1.Source = new BitmapImage(new Uri(imageList[i], UriKind.RelativeOrAbsolute));
}