c# - 从 RichEditBox 中删除图像

标签 c# wpf windows-phone-8 windows-phone-8.1 richeditbox

我将 URL 中的图像插入到 RichEditBox 中,如下所示:

// Create a MemoryStream from uri, and insert into richeditbox
System.IO.Stream stream = await new HttpClient().GetStreamAsync("some url");
var memoryStream = new MemoryStream();
await stream.CopyToAsync(memoryStream);
memoryStream.Position = 0;
this.richEditBox.Document.Selection.InsertImage(40, 40, 0, Windows.UI.Text.VerticalCharacterAlignment.Baseline, "image", memoryStream.AsRandomAccessStream());

效果很好,但我无法在按 backspace 时删除(使用屏幕键盘)图像!

有人有什么想法吗?

最佳答案

找到了!答案很简单 - 只需要设置 Selection.StartPosition

this.richEditBox.Document.Selection.StartPosition--;
this.richEditBox.Document.Selection.Delete(Windows.UI.Text.TextRangeUnit.Object, 1);

StartPosition 默认设置为 EndPosition for Document.Selection,所以尝试删除只是什么都不做(因为什么都没有 已选择)。

注意:重写RichEditBoxKeyDown事件,将以上添加到VirtualKey.Back按键得到从屏幕键盘获得所需的结果!

关于c# - 从 RichEditBox 中删除图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30540497/

相关文章:

windows-phone-7 - LongListSelector - 值不在预期范围内

php - Microsoft 推送通知服务 403 - 禁止 : Access is denied

c# - Windows 8 C# : Windows. Ui.Xaml.Media.ImageSource 更改图像

c# - 如何在不阻塞 UI 的情况下在 Binding 中加载控件?

wpf - 以编程方式选择并突出显示数据网格MVVM

c# - 为什么反射仍然有效时动态方法调用失败?

c# - View 模型中的 MVVM 异步调用 : How can I connect azure DB with MVVM

C# 异步 TCP 服务器矫枉过正?

C# 程序集在子域中创建实例

c# - 无法在对象浏览器中查看此项目,因为它不可用或尚未构建