Вы бы использовали RUN внутри RichTextBox, что-то вроде:
<RichTextBox>
<Run FontFamily="Arial">My Arial Content</Run>
<Run FontFamily="Times" FontWeight="Bold">My bolded Times content</Run>
<Run>My Content that inherits Font From the RTB</Run>
</RichTextBox>
Хорошо, можно поиграть с некоторыми низкоуровневыми хуями. Но здесь мы идем:
Сначала добавьте несколько кнопок ToggleButton и RichTextBox в форму XAML. В поле Rich Text Box вы дадите ему несколько командных привязок, чтобы система знала, что все работает вместе.
Вот XAML:
<RichTextBox Height="119" Name="RichTextBox1" Width="254" >
<RichTextBox.CommandBindings>
<CommandBinding Command="EditingCommands.ToggleBold" CanExecute="CommandBinding_CanExecute" ></CommandBinding>
<CommandBinding Command="EditingCommands.ToggleItalic" CanExecute="CommandBinding_CanExecute" ></CommandBinding>
</RichTextBox.CommandBindings>
</RichTextBox>
<ToggleButton MinWidth="40" Command="EditingCommands.ToggleBold" Height="23" HorizontalAlignment="Left" Name="Button1" VerticalAlignment="Top" Width="75" CommandTarget="{Binding ElementName=RichTextBox1}" >Bold</ToggleButton>
<ToggleButton MinWidth="40" Command="EditingCommands.ToggleBold" Height="23" HorizontalAlignment="Left" Name="Button2" VerticalAlignment="Top" Width="75" CommandTarget="{Binding ElementName=RichTextBox1}" >Italics</ToggleButton>
Теперь, что есть RichTextbox и две кнопки переключения, и кнопки переключения связаны с привязками команд к ToggleBold / ToggleItalics индивидуально.
В коде у меня есть два метода:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
End Sub
Private Sub CommandBinding_CanExecute(ByVal sender As System.Object, ByVal e As System.Windows.Input.CanExecuteRoutedEventArgs)
e.CanExecute = True
End Sub
Имеется обработчик события BUTTON CLICK, потому что кнопке нужен обработчик события, чтобы его можно было использовать.
CanExecute сообщает кнопке, доступно ли значение для полужирного шрифта или нет (например, вы можете проверить длину и не пытаться полужирным шрифтом, если RTB пуст).
Теперь, для действительно низкоуровневого управления вещами, вы должны будете делать вещи в RichTextFormat. Перейдите по этой ссылке , чтобы узнать больше об этом.