在RichTextBox中更改所选文本的样式

如何更改RichTextBox中所选文本的样式(如Font,FontSize,Brush)?

更新:假设我有一个RichTextBox和一个工具栏。 用户来选择RichTextBox框内的文本并从工具栏中更改字体大小。 我想改变所选文字的样式。

WPF

 if (this.TextEditor.Selection.IsEmpty) this.TextEditor.CurrentFontFamily = SelectedFont; else this.TextEditor.Selection.ApplyPropertyValue(TextElement.FontFamilyProperty, SelectedFont); 

或另一个WPF示例

  private void ChangeTextProperty(DependencyProperty dp, string value) { if (mainRTB == null) return; TextSelection ts = richTextBox.Selection; if (ts!=null) ts.ApplyPropertyValue(dp, value); richTextBox.Focus(); } 

这里有一些例子Windows更改字体和字体颜色(不是wpf)

 richTextBox1.SelectionFont = new Font("Tahoma", 12, FontStyle.Bold); richTextBox1.SelectionColor = System.Drawing.Color.Red; 

下面的另一个例子(不是wpf)

 private void WriteTextToRichTextBox() { // Clear all text from the RichTextBox; richTextBox1.Clear(); // Set the font for the opening text to a larger Arial font; richTextBox1.SelectionFont = new Font("Arial", 16); // Assign the introduction text to the RichTextBox control. richTextBox1.SelectedText = "The following is a list of bulleted items:" + "\n"; // Set the Font for the first item to a smaller size Arial font. richTextBox1.SelectionFont = new Font("Arial", 12); // Specify that the following items are to be added to a bulleted list. richTextBox1.SelectionBullet = true; // Set the color of the item text. richTextBox1.SelectionColor = Color.Red; // Assign the text to the bulleted item. richTextBox1.SelectedText = "Apples" + "\n"; // Apply same font since font settings do not carry to next line. richTextBox1.SelectionFont = new Font("Arial", 12); richTextBox1.SelectionColor = Color.Orange; richTextBox1.SelectedText = "Oranges" + "\n"; richTextBox1.SelectionFont = new Font("Arial", 12); richTextBox1.SelectionColor = Color.Purple; richTextBox1.SelectedText = "Grapes" + "\n"; // End the bulleted list. richTextBox1.SelectionBullet = false; // Specify the font size and string for text displayed below bulleted list. richTextBox1.SelectionFont = new Font("Arial", 16); richTextBox1.SelectedText = "Bulleted Text Complete!"; } 

对于WPF RichTextBox,您必须将ApplyPropertyValue方法用于TextRange。 您可以使用RichTextBox实例的Selected属性获取选定的TextRange。

 var selection = myRichTextBox.Selection; if (!selection.IsEmpty) selection.ApplyPropertyValue(TextElement.FontSizeProperty, 10.0);