首先創建一個類,設置屬性,表示每一行:
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>
wpf image,以上代碼,新建的一個名字為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
wpf chart,我們常常使用的是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) });
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态