Если я правильно вас понимаю, вы хотите сравнить содержание до и после Ctr+Z
.
Тогда вы должны сделать:
В XAML файле:
<RichTextBox PreviewKeyDown="RichTextBox_PreviewKeyDown" KeyUp="RichTextBox_KeyUp" />
В CS Файл:
private void RichTextBox_KeyUp(object sender, KeyEventArgs e)
{
if (Keyboard.Modifiers == ModifierKeys.Control && e.Key == Key.Z)
{
Console.WriteLine("After : " + new TextRange(((RichTextBox)sender).Document.ContentStart, ((RichTextBox)sender).Document.ContentEnd).Text);
}
}
private void RichTextBox_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (Keyboard.Modifiers == ModifierKeys.Control && e.Key == Key.Z)
{
Console.WriteLine("Before : " + new TextRange(((RichTextBox)sender).Document.ContentStart, ((RichTextBox)sender).Document.ContentEnd).Text);
}
}
Тогда вы увидите на выходе приложения содержание вашего RichTextBox до Ctrl+Z
и содержимого после.
Я попробовал, и все работает отлично!
Я думаю, что вы будете иметь, чтобы [осуществить это самостоятельно] (http://wpftutorial.net/UndoRedo.html). Я не знаю о событии из коробки, которое будет отвечать вашим потребностям. – MasterMastic
@ Ken Я думаю, что вы должны продвигать это до ответа, я не знал о таком отличном и очевидном решении для реализации таких функций вручную. – Clint
Посмотрите это http://stackoverflow.com/questions/8667302/how-to-get-richtextbox-undo-to-work-better –