如何在WPF RichTextBox中强制插入模式

时间:2009-05-23 13:52:51

标签: wpf richtextbox

有谁知道如何控制WPF RichTextBox的插入模式。我想强制RichTextBox始终处于覆盖模式而不是插入。

1 个答案:

答案 0 :(得分:0)

不幸的是,似乎没有记录在案的方法。我知道的唯一方法是使用反射,如下所示,但这种技术访问RichTextBox的内部工作。它适用于当前版本的WPF,但无法保证它将继续发挥作用,因此使用它需要您自担风险。

PropertyInfo textEditorPropertyInfo = typeof(RichTextBox).GetProperty("TextEditor", BindingFlags.NonPublic | BindingFlags.Instance);

        if (textEditorPropertyInfo == null)
            throw new NotSupportedException("SetOverwriteable not support on this platform");

        object textEditor = textEditorPropertyInfo.GetValue(this, null);
        PropertyInfo overtypeModePropertyInfo = textEditor.GetType().GetProperty("_OvertypeMode", BindingFlags.NonPublic | BindingFlags.Instance);

        if (overtypeModePropertyInfo == null)
            throw new NotSupportedException("SetOverwriteable not support on this platform");

        overtypeModePropertyInfo.SetValue(textEditor, true, null);

以上需要在构造函数之后发生。