太字/斜体/下線の書式を消去せずにRTFのチャンクのフォントサイズを変更したい(この質問の問題と同様の問題)。受け入れられた答えは、個別に変更できる一貫してフォーマットされたテキストの実行を見つけるために、SelectionFont
プロパティがnullになるまでテキストボックスの選択を変更することです。合理的に聞こえます。ただし、RichTextBoxコントロールの実際の動作は、ドキュメントと矛盾しているようです。
RichTextBox.SelectionFont
MSDNのドキュメントには次のように記載されています。
現在のテキスト選択に複数のフォントが指定されている場合、このプロパティはnullです。
ただし、太字と通常のテキストが混在するこのコードは、期待どおりに動作しません。
var rtb = new RichTextBox {
Rtf = @"{\rtf1 This is \b bold\b0.}"
};
rtb.SelectAll();
// Now you'd expect rtb.SelectionFont to be null,
// but it actually returns a Font object
他のフォーマットを壊すことなくフォントサイズを変更できるように、テキストをフォーマットする他の信頼できる方法はありますか?(RTFを直接操作することは問題ありません。これを実現するために、WinFormsを使用することに完全に固執しているわけではありません)。