如何更改插入符号格式

时间:2018-04-26 12:16:41

标签: c# wpf richtextbox

我的问题是,当我将文本粘贴到富文本框中时,我想摆脱所有格式。现在这基本上有效:

private void RichTextBox1_Pasting(object sender, DataObjectPastingEventArgs e)
{
    if (hasImage(Clipboard.GetDataObject()))
    {
        e.CancelCommand();
    }

    RichTextBox rtb = sender as RichTextBox;

    if (Clipboard.ContainsText(TextDataFormat.Rtf) || Clipboard.ContainsText())
    {
        // get rid of formatting
        string append = Clipboard.GetText(TextDataFormat.UnicodeText);
        Clipboard.SetText(append, TextDataFormat.UnicodeText);
    }
}

问题是:如果我以前在我的富文本框中格式化了文本(例如,粗体文本)并删除了此文本,则插入符号仍然是粗体(如果以前选择了斜体,则为斜体 - 这很容易发现,因为插入符号是倾斜的!)。在这种情况下,文本也将插入此格式。我怎么能摆脱它?

2 个答案:

答案 0 :(得分:0)

如果要清除以前格式的整个文档,可以执行以下操作:

TextRange wholeDocument = new TextRange(Document.ContentStart, Document.ContentEnd);
wholeDocument.ClearAllProperties();

如果你想保留以前的格式(即你要追加),看起来这可能有用:https://msdn.microsoft.com/en-us/library/ms597038(v=vs.110).aspx

答案 1 :(得分:0)

虽然这只能解决问题的一部分,但我们的目的令人满意:

rtb.Selection.ClearAllProperties();

使用此行,将删除所选文本的格式。因此,如果您标记了一些格式化的文本并按 CTRL + V ,则插入剪贴板中的文本时不会显示格式。

如果你只是使用退格键移除几个字符,如何清除插入符号的格式仍然是未解决的。