如何向字体添加特定的 属性?

How do I add a specific property to a font?

我有一个字符串格式化系统,用户可以使用特殊字符组合为文本着色,添加粗体、斜体和下划线,所有这些都以文本为中心。

我的问题是,例如,当用户尝试加粗和加下划线时,文本只显示后者 属性。例如,

{bold char combo}{italic char combo}Hello, World

会显示为:

你好,世界

而不是:

你好,世界

这是我当前使用的代码示例。

// Other formatting codes...
case 'B': // Bold
   box.SelectionFont = new Font(box.SelectionFont, FontStyle.Bold);
   break;
case 'I': // Italic
   box.SelectionFont = new Font(box.SelectionFont, FontStyle.Italic);
   break;
// Other formatting codes...

找到解决方案。

box.SelectionFont = new Font(box.SelectionFont, box.SelectionFont.Style ^ FontStyle.Bold);

改编自"A way to overcome RichTextBox's limitations?"