Работает ли переопределение подчеркивания / зачеркивания в WPF RichTextBox?
-
23-09-2019 - |
Вопрос
В WPF RichTextBox
, эффективный стиль a Run
текста является результатом объединения свойств , определенных на Run
со свойствами, которые он "наследует" от заключающего Paragraph
и, наконец, стили на Document
.Таким образом, вы можете установить FontWeight
Для Bold
на любом из этих уровней.Вы также можете установить его Bold
на Paragraph
а затем переключите его на Normal
(переопределить его) для определенного Run
.
Однако подчеркивание и зачеркивание - это разные символы.Это элементы, которые при необходимости могут отображаться в списке TextDecorations
, который является свойством Inline
(и, следовательно , Run
) и из Paragraph
, но не из Document
.И вы можете включить Underline
в Paragraph
, и это наследуется так , что все Run
s в пределах этого Paragraph
по умолчанию отображается подчеркнутым по умолчанию.
Можно ли отключить его подчеркивание в определенном Run
?т. е.есть ли способ вставить запись в список TextDecorations
что означало бы "Не надо подчеркнуть", таким образом переопределяя Paragraph
настройка?
Решение
Я знаю, что в принципе вы можете справиться с подчеркиванием следующим образом:
protected void ContinueRoutingCommand(object sender, CanExecuteRoutedEventArgs e)
{
else if (e.Command == EditingCommands.ToggleUnderline)
{
e.Handled = true;
e.CanExecute = true;
e.ContinueRouting = false;
return;
}
}
Однако в вашем случае вы хотите переопределить его только при определенном запуске, не так ли?Затем вы можете проверить свой запуск внутри внутреннего if и заблокировать его точно так же, если хотите.