我有一个WPF应用程序,用户可以在RichTextBox中粘贴一些Word数据......但如果这个单词数据有图像,我需要删除它,我该怎么做呢? 由于FlowDocument是xml,也许做一些linq魔术可以做到这一点,但我不知道如何:/从RichTextBox中移除图像FlowDocument
1
A
回答
0
有一个名为WordtoXAML转换器(http://wordtoxaml.codeplex.com)的工具。您可以使用它将Word文档内容转换为XAML,使用正则表达式匹配来识别图像,然后将其去除。
+0
那么,从Word粘贴的RichTextBox托管FlowDocument将执行转换,因此向解决方案添加第三方工具不会使此任务变得更加简单。 – 2010-09-23 21:02:34
0
下面的代码将做你想要的。虽然它可能有点浪费(它会查看整个文档而不是刚刚粘贴的位),但它是唯一的方法,因为有时RichTextBox在指示最近绘制的范围时不准确:
public class MyTextBox : RichTextBox
{
public MyTextBox()
{
CommandBindings.Add(new CommandBinding(ApplicationCommands.Paste, Paste));
}
protected virtual void Paste(object sender, ExecutedRoutedEventArgs e)
{
Paste();
foreach (var image in FindImages())
{
if (image.SiblingInlines != null)
{
image.SiblingInlines.Remove(image);
}
}
}
IEnumerable<InlineUIContainer> FindImages()
{
var result = new List<InlineUIContainer>();
var blocks = Document.Blocks;
for (TextPointer position = blocks.FirstBlock.ElementStart; position != null && position.CompareTo(blocks.LastBlock.ElementEnd) != 1; position = position.GetNextContextPosition(LogicalDirection.Forward))
{
InlineUIContainer element = position.Parent as InlineUIContainer;
if (element != null && element.Child is Image)
{
result.Add(element);
}
}
return result;
}
}
相关问题
- 1. RichTextBox中的图像(FlowDocument)
- 2. 将RichTextBox FlowDocument保存为图像
- 3. 在运行时将图像拖动到RichTextBox中的FlowDocument中
- 4. 从RichTextBox中提取图像
- 5. 删除(或更新)RichTextBox中的图像
- 6. 从父视图中移除图像
- 7. InvalidOperationException当我尝试从WPF中的RichTextBox手动删除图像
- 8. 从uiimageview.animationimages中移除图像 - iPhone/Swift
- 9. 如何将FlowDocument附加到RichTextBox?
- 10. RichTextBox中不显示图像
- 11. 如何使用图像处理从图像中移除反射
- 12. 查找FlowDocument中的所有图像
- 13. FlowDocument中没有显示图像
- 14. RichTextBox图像问题
- 15. 从小的二进制图像中移除异常像素
- 16. 从SubView中移除视图
- 17. 从UIScrollView中移除视图
- 18. 移除图像透明度
- 19. 转换XAML来的FlowDocument在RichTextBox中的WPF
- 20. 如何将文本转换为WPF RichTextBox FlowDocument中的超链接?
- 21. 以编程方式选择WPF RichTextBox(FlowDocument)中的文本范围
- 22. 将图像嵌入到Silverlight RichTextBox中
- 23. WinForms RichTextBox中的图像问题
- 24. 从UIImageView中删除图像
- 25. 从图像中删除行
- 26. 从UICollectionViewController中删除图像
- 27. 从IKImageView中删除图像
- 28. 从UI中删除图像
- 29. 从NSMutableArray中删除图像
- 30. 从图像中删除卷
LogicalTreeUtility用于获取FlowDocument中的特定元素,可能在此处可以使用:http://www.eggheadcafe.com/tutorials/aspnet/233d3397-0388-473c-8473-721a40cf910c/wpf- custom-find-control-for-flowdocuments.aspx – 2010-09-23 21:05:55