public class ImgConverter : IValueConverter
{
#region IValueConverter 成員
public object Convert(object value,
Type targetType,
object parameter,
CultureInfo culture)
{
DateTime date = (DateTime)value;
return date.ToShortDateString();
}
object IValueConverter.Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
byte[] ageInt = (byte[])value;
return GetImage(ageInt);
}
object IValueConverter.ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
//string strValue = value.ToString();
//Int16 resultAge;
//if (Int16.TryParse(strValue, out resultAge))
//{
// return resultAge;
//}
return value;
}
public byte[] StreamToBytes(Stream stream)
{
byte[] bytes = new byte[stream.Length];
stream.Read(bytes, 0, bytes.Length);
// 設置當前流的位置為流的開始
stream.Seek(0, SeekOrigin.Begin);
return DEncrypt4ImageHelper.DecryptByteFile( bytes);
}
BitmapImage GetImage(byte[] rawImageBytes)
{
BitmapImage imageSource = null;
try
{
using (var stream = new MemoryStream(DEncrypt4ImageHelper.DecryptByteFile(rawImageBytes)))
{
var bitmap = new BitmapImage();
bitmap.BeginInit();
bitmap.StreamSource = stream;
bitmap.CacheOption = BitmapCacheOption.OnLoad;
bitmap.EndInit();
bitmap.Freeze();
imageSource = bitmap;
}
//using (MemoryStream stream = new MemoryStream(rawImageBytes))
//{
// stream.Seek(0, SeekOrigin.Begin);
// BitmapImage b = new BitmapImage();
// b.SetSource(stream);
// imageSource = b;
//}
}
catch (System.Exception ex)
{
}
return imageSource;
}
#endregion
}
xaml UserControl <> //裏加入
xmlns:my="clr-namespace:上面類的命名空間"
xaml <UserControl.Resources> //裏加入
<my:ImgConverter x:Key="ImgConvert"/>
</UserControl.Resources>
xaml Datagrid下面代碼
<c1:C1DataGrid.Columns> //裏面加入
<c1:DataGridTemplateColumn Header="內容">
<c1:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Grid Width="240" >
<Image Source="{Binding 圖片Byte[] ,Converter={StaticResource ImgConvert}}" HorizontalAlignment="Left" Margin="10,0,0,0" Width="24" Height="24" >
</Image>
<Label Height="Auto" HorizontalAlignment="Left" Name="label1" VerticalAlignment="Center" Margin="50,0,0,0" Width="Auto" Content="{Binding 圖片名稱}" />
</Grid>
</DataTemplate>
</c1:DataGridTemplateColumn.CellTemplate>
</c1:DataGridTemplateColumn>
</c1:C1DataGrid.Columns>
如上代碼中 圖片Byte[] 和 圖片名稱 換成妳Itemsource裏的列名
DEncrypt4ImageHelper.DecryptByteFile 是網上的代碼 妳找壹下。我的圖片Byte[] 是加密的byte[].所以需要解密。妳可以自己改改