1
下面是一个将字符串(来自sql server数据库)转换为图片的类。 如何从XAML图像控件调用转换函数,以便在打开子窗体时,我将根据主窗体datagrid中选择的行来查看单个员工的图像。基本上,我的问题是 - 我可以调用一个转换器功能,在运行时将照片文本转换为图像?我尝试了这样的事情...... 我之前使用过代码来做这件事,但我想直接从XAML做到这一点。从Silverlight 3中的XAML ConvertBase64ToImage转换器
XAML: -
<Image x:Name="EmpPic"
Source=Text="{Binding Photo, Mode=TwoWay, Converter={StaticResource PhotoConverter}"
HorizontalAlignment="Center"
Width="165"
Height="160"
Margin="2,2,2,2"/>
代码: -
using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.IO;
using System.Windows.Media.Imaging;
using System.Windows.Data;
namespace SL3Demo.Utility
{
//public class PhotoConverter : IValueConverter
//{
// //public BitmapImage ConvertBase64ToImage(string base64String)
// //{
// // //Convert Base64 String to byte[]
// // byte[] imageBytes = Convert.FromBase64String(base64String);
// // BitmapImage bi = new BitmapImage();
// // bi.SetSource(new MemoryStream(imageBytes));
// // return bi;
// //}
//}
public class PhotoConverter
{
public BitmapImage PhotoConvert(string value)
{
byte[] imageBytes = Convert.FromBase64String(value.ToString());
BitmapImage bi = new BitmapImage();
bi.SetSource(new MemoryStream(imageBytes));
return bi;
}
}
}
我想你的代码,但是当我建立我得到这个错误:错误 \t规则中的意外标记无:MarkupExtension :: ='{'TYPENAME(Arguments)? @'}',在'{绑定照片,转换器= {StaticResource PhotoConverter}'。 我是否需要将参数添加到图像的XAML? – 2009-10-15 16:04:22
Source属性中缺少}。 – AnthonyWJones 2009-10-15 17:19:14