wpf image,WPF DataGrid顯示圖片的一種方法

 2023-11-19 阅读 34 评论 0

摘要:DataGrid中添加圖片列 首先創建一個類,設置屬性,表示每一行: public class MyDataObject{public int Number { get; set; }public BitmapImage image { get; set; }} XAML代碼: <DataGrid x:Name="dg" Margin="0,0,0,40" ColumnWidt

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>

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) });

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/181153.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息