DataGrid中添加图片列

首先创建一个类,设置属性,表示每一行:

        public class MyDataObject{public int Number { get; set; }public BitmapImage image { get; set; }}

XAML代码:

 <DataGrid x:Name="dg" Margin="0,0,0,40" ColumnWidth="*" AutoGenerateColumns="False" ItemsSource="{Binding MyDataObject}" >  <DataGrid.Columns><DataGridTextColumn Binding="{Binding Path=Number}" Width="40" ClipboardContentBinding="{x:Null}" Header="序号"/><DataGridTemplateColumn Width="600" Header="Contour"><DataGridTemplateColumn.CellTemplate><DataTemplate><Image Source="{Binding image}" /> </DataTemplate></DataGridTemplateColumn.CellTemplate></DataGridTemplateColumn></DataGrid.Columns></DataGrid>

以上代码,新建的一个名字为dg的DataGrid,同时添加的两个column,一个类型为DataGridTextColumn,另一个为DataGridTemplateColumn(存放图片)
注意点:
1 AutoGenerateColumns设置成false,否则可能会出现重复的列。
2 设置DataGrid的ItemsSource=”{Binding MyDataObject} MyDataObject应为新建的类名
3 设置DataGridTextColumn Binding=”{Binding Path=Number}
4 添加< Image Source ={“Binding image”} /> image应为新创建的类中的一个属性

.cs代码

    List<MyDataObject> list = new List<MyDataObject>();  //用List存储每一行的数据list.Add(new MyDataObject() { Number = 0, image = bmp0}); //假设bmp0是一个BitmapImage类型文件 list.Add(new MyDataObject() { Number = 1, image = bmp1}); //再添加一行dgvContours.ItemsSource = list;

DataGrid显示图片,那么这个图片的类型应该为BitmapImage。如果将开始时新创建的类的属性设置为 public Bitmap image { get; set; },这样是显示不出来图片的。参考:https://stackoverflow.com/questions/23952174/display-an-image-in-a-datagrid-column

我们常常使用的是Bitmap,那么需要将Bitmap类型转换成BitmapImage类型,转换方法如下:

public BitmapImage ConvertBitmap(System.Drawing.Bitmap bitmap)
{MemoryStream ms = new MemoryStream();bitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);BitmapImage image = new BitmapImage();image.BeginInit();ms.Seek(0, SeekOrigin.Begin);image.StreamSource = ms;image.EndInit();return image;
}

这样的话,对于一个Bitmap类型的图像bmp,直接 list.Add(new MyDataObject() { Number = i, image = ConvertBitmap(temp) });

WPF DataGrid显示图片的一种方法相关推荐

  1. python 学习系列(3) 读取并显示图片的两种方法

    python 读取并显示图片的两种方法 在 python 中除了用 opencv,也可以用 matplotlib 和 PIL 这两个库操作图片.本人偏爱 matpoltlib,因为它的语法更像 mat ...

  2. python如何调用图片-python实现读取并显示图片的两种方法

    在 python 中除了用 opencv,也可以用 matplotlib 和 PIL 这两个库操作图片.本人偏爱 matpoltlib,因为它的语法更像 matlab. 一.matplotlib 1. ...

  3. python图片-python实现读取并显示图片的两种方法

    在 python 中除了用 opencv,也可以用 matplotlib 和 PIL 这两个库操作图片.本人偏爱 matpoltlib,因为它的语法更像 matlab. 一.matplotlib 1. ...

  4. Android TextView里直接显示图片的三种方法

    方法一:重写TextView的onDraw方法,也挺直观就是不太好控制显示完图片后再显示字体所占空间的位置关系.一般如果字体是在图片上重叠的推荐这样写.时间关系,这个不付源码了. 方法二:利用Text ...

  5. python读取png图片只有一个图层_python实现读取并显示图片的两种方法

    在 python 中除了用 opencv,也可以用 matplotlib 和 PIL 这两个库操作图片.本人偏爱 matpoltlib,因为它的语法更像 matlab. 一.matplotlib 1. ...

  6. MFC对话框中显示图片的四种方法

    先分类如下: (一) 非动态显示图片(即图片先通过资源管理器载入,有一个固定ID) (二) 动态载入图片(即只需要在程序中指定图片的路径即可载入) 为方便说明,我们已经建好一个基于对话框的工程,名为T ...

  7. 在MFC对话框中显示图片的三种方法(有两种使用OpenCv)

    最近写了一个用对话框显示图片的程序,这里将学习到的东西整理一下: 编程环境:VC6.0+OpenCv1.0 准备工作:用VC6.0生成一个对话框外壳(全被采用默认设置),然后在对话框中添加一个静态控件 ...

  8. android显示图片的两种方法

    第一种使用xml文件 1.新建android application 2.将要显示的图片img.png放到res/drawable-mdpi目录下 3.打开res/layout目录下的main.xml ...

  9. plt 显示图片(两种方法)

    1. PIL 读取图片 #!/usr/bin/python3 # coding:utf-8from PIL import Image import matplotlib.pyplot as plt# ...

最新文章

  1. mysql的trim动态标签_Mybatis之trim标签的理解
  2. .NET中使用Redis
  3. Linux:rsync error: remote command not found (code 127) at io.c(226) [sender=3.1.2
  4. 10分钟虚拟设备接入阿里云IoT平台实战
  5. java程序设计图形题_面向对象与Java程序设计基础题目:设计一个程序可以一计算平面图形的面积和立体图形的体积。1.使用interface关键...
  6. AndroidStudio安卓原生开发_SwipeRefreshLayout_下拉刷新控件---Android原生开发工作笔记119
  7. vsftp匿名访问目录_怎么更改vsftp匿名用户的默认登录目录/var/ftp?
  8. MVC中使用T4模板
  9. 关于DNF的多媒体包NPK文件的那些事儿(9) - IMGV6
  10. 上传git编译失败回退
  11. matlab连通区域质心标记,连通域的质心
  12. 一次macbook安装iftop失败的经历及解决方式
  13. SaltStack组件return和job cache以及salt-ssh
  14. 计算机时间怎么改24小时模式,怎么修改电脑的时间为24小时制啊?
  15. 【Gamma】Scrum Meeting 1 与助教谈话
  16. IOS status bar
  17. Google中国博客开通啦~!!
  18. swift QQ界面练习
  19. 隧道调频广播覆盖-天线分布式部署是隧道调频广播无线覆盖系统设备介绍
  20. 【Linux】基础IO1

热门文章

  1. 第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(南京)签到题F Fireworks
  2. lua mysql 事务_为什么在 Redis 实现 Lua 脚本事务?-阿里云开发者社区
  3. java web主流框架整合开发 光盘_开发者突击:Java Web主流框架整合开发(第2版)(附CD光盘1张)...
  4. 递归java程序_JAVA编程基础之递归结构
  5. numpy 归一化_图卷积网络到底怎么做,这是一份极简的Numpy实现
  6. qoq是什么意思的缩写_有意思,“TTFN”居然是“再见”的缩写词,具体是指什么呢?...
  7. itunes备份包括哪些内容_企业形象策划包括哪些内容?
  8. vs点击方法跳不到对于的地方_迷你世界:大神玩花式跑酷有多简单?老玩家教你,轻松学会百段跳...
  9. surface 安卓双系统_一张图看懂微软Surface发布会:史上最大惊喜
  10. 2018青岛ICPC ZOJ 4063: Tournament(构造)