WPF RichTextBox富文本支持图片导入功能
效果图如下:
关键代码如下:
Image img = new Image();
img.Stretch = Stretch.Fill;
img.Source = win.ImageModel.Image;
img.Width = win.ImageModel.Width;
img.Height = win.ImageModel.Height;
new InlineUIContainer(img, mainRTB.Selection.Start);
其中的 win 是弹框选择的图片信息,mainRTB是富文本控件
常规的保存是不支持图片的保存的,所以我们要换个格式保存,代码如下
/// <summary>
/// 保存文件.XamlPackage(支持图片保存)
/// </summary>
/// <param name="fileName"></param>
/// <returns></returns>
public bool SaveXamlPackage(string fileName)
{
try
{
TextRange t = new TextRange(mainRTB.Document.ContentStart,mainRTB.Document.ContentEnd);
FileStream file = new FileStream(fileName, FileMode.OpenOrCreate);
t.Save(file, DataFormats.XamlPackage);
file.Close();
return true;
}
catch (Exception)
{
return false;
}
}
/// <summary>
/// 加载文件
/// </summary>
/// <param name="fileName"></param>
/// <returns></returns>
public bool LoadRtf(string fileName)
{
try
{
TextRange t = new TextRange(mainRTB.Document.ContentStart, mainRTB.Document.ContentEnd);
FileStream file = new FileStream(fileName, FileMode.OpenOrCreate);
t.Load(file, DataFormats.XamlPackage);
file.Close();
return true;
}
catch (Exception)
{
return false;
}
}