2009-05-23 14 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); 

上記はコンストラクタの後に発生する必要があります。

関連する問題