我的问题是,当我将文本粘贴到富文本框中时,我想摆脱所有格式。现在这基本上有效:
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);
}
}
问题是:如果我以前在我的富文本框中格式化了文本(例如,粗体文本)并删除了此文本,则插入符号仍然是粗体(如果以前选择了斜体,则为斜体 - 这很容易发现,因为插入符号是倾斜的!)。在这种情况下,文本也将插入此格式。我怎么能摆脱它?
答案 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 ,则插入剪贴板中的文本时不会显示格式。
如果你只是使用退格键移除几个字符,如何清除插入符号的格式仍然是未解决的。