简体   繁体   中英

How to extract font size of content

I've been working on making my own little text editor using a RichTextBox(MyRTB). I've made a Combobox to change the font of the selected text within the RichTextBox when the value changes using this code block:

private void CmbFont_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        if (MyRTB != null)
        {                
            string fontsize = (((ComboBoxItem)CmbFont.SelectedItem).Content).ToString();
            MyRTB.Selection.ApplyPropertyValue(Run.FontSizeProperty, fontsize);
        }
    }

Now I'd like my Combobox value to change every time I select a string of text within the RichTextBox that has a different font size. Is this possible?

Thanks

Add an event handler to the selection changed event. In that event handler get the TextElement.FontSizeProperty from the RichTextBox selection

...
MyRTB.SelectionChanged += OnSelectionChanged;
...


void OnSelectionChanged()
{
 var fontSize = MyRTB.Selection.GetPropertyValue(TextElement.FontSizeProperty);
 if (fontSize == DependencyProperty.UnsetValue)
 {
  // Selection has text with different font sizes.
 }
 else {
  // (double)fontSize is the current font size. Update Cmb_Font.. 
 }
}

Make sure you don't call OnSelectionChanged & CmbFont_SelectionChanged recursively.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM