2009-05-23 3 views

ответ

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); 

Вышеупомянутое должно произойти после конструктора.

Смежные вопросы