現在、WPF プロジェクトでいくつかの基本的なワード プロセッサ機能を作成しようとしています。私は RichTextBox を使用しており、すべての EditingCommands (ToggleBold、ToggleItalic など) を認識しています。私が立ち往生しているのは、MS Office のようにユーザーがフォントサイズとフォントフェイスを変更できるようにすることです。選択したテキストのみの値が変更され、選択したテキストがない場合は現在のキャレット位置の値が変更されます。これを機能させるためのかなりの量のコードを思いつきましたが、テキストが選択されていないことに問題があります。これが、RichTextBox.Selection に対して行っていることです。
TextSelection text = richTextBox.Selection;
if (text.IsEmpty)
{
//doing this will change the entire word that the current caret position
//is on which is not the desire/expected result.
text.ApplyPropertyValue(RichTextBox.FontSizeProperty, value);
}
else
//This works as expected.
text.ApplyPropertyValue(RichTextBox.FontSizeProperty, value);
だから私の質問は、これを行うにはどうすればよいですか? これを行うためのより良い/より便利な方法はありますか? 私が考えていたのは、新しいインラインを段落に挿入する必要があるということでしたが、その方法がわかりませんでした。どんな助けでも大歓迎です。ありがとうございました。