2009-03-03 8 views
0

RichTextBox에서 일부 텍스트 편집을 취소하려고 시도하는 중입니다. TextChanged 이벤트를 사용하고 있지만 일부 변경 사항이나 아이디어를 취소하거나 롤백하는 방법을 찾지 못했습니까?WPF RichTextBox가 텍스트를 삭제하지 않습니다.

private void mainRTB_TextChanged(object sender, TextChangedEventArgs e) 
     { 
      TextRange text = new TextRange(mainRTB.Document.ContentStart, mainRTB.Document.ContentEnd); 
      if (text.Text.Length >= this.MaxLenght) 
      { 
       mainRTB.Document.ContentEnd.DeleteTextInRun(-1); 
       mainRTB.IsReadOnly = true; 
      } 
} 

mainRTB.Document.ContentEnd.DeleteTextInRun (-1); 텍스트를 삭제하지 않습니다.

mainRTB -> System.Windows.Controls.RichTextBox

Thks

답변

1

나는 단지 ChangedEvent없이 변경하거나 PreviewChange 이벤트가 있기 때문에 편집을 방지 할 수있는 방법이 생각하지 않습니다. 당신이 시도 할 수있는 것은 변화를 원상태로 돌리는 것입니다.

+0

취소 작업을 사용하면 입력 한 모든 텍스트가 삭제됩니다. "aaaaaaa"를 한 번만 누르면 실행 취소 작업이 수행됩니다. 입력 한 모든 "aaaaaa"를 삭제하십시오. 따라서 모든 텍스트가 삭제됩니다. 이것은 내가 원하는 것이 아니며, 낯설게하는 행동을 제공합니다. DeleteTextInRun의 주 목적은 무엇입니까? – rpf

관련 문제