Я создаю простой редактор в нашем приложении, используя WPF RichTextBox. Выше я добавил кнопки reguslar, такие как Bold, Italic и т. Д. Эти кнопки используют команды RichTextBox для установки этих свойств, но рядом с этими кнопками команды также отправляются с помощью CTRL + B, CTRL + I и т. Д. хотите, чтобы эти кнопки представляли текущее состояние RichTextBox на курсоре. Я уже узнал, как получить это состояние, и оно работает, когда я обновляю это состояние в событии SelectionChanged. Это событие, конечно же, не запускается при переключении Bold, поэтому прямой обратной связи нет.
Я хотел бы знать, есть ли способ прослушивания вызываемых команд, не затрагивая их первоначальное поведение или некоторые другие идеи для решения моих проблем.
Я попытался прослушать команду следующим образом:
CommandBinding boldBinding = new CommandBinding(EditingCommands.ToggleBold, CommandExecuted);
_richTextBox.CommandBindings.Add(boldBinding);
и
private void CommandExecuted(object sender, ExecutedRoutedEventArgs e) {
UpdateProperties();
e.Handled = false;
}
Это обновило свойства, но RichTextBox, похоже, больше не получал команду.
Я также пытался создавать свои собственные команды для элемента управления, содержащего RichTextBox, но когда нажата клавиша CTRL + B, когда RichTextBox имеет фокус, вместо новой команды вызываются оригинальные команды RichTextBox.
Большое спасибо заранее!
Liewe