2012-02-29 36 views
1

我一直在努力使用RichTextBox(MyRTB)制作我自己的小文本编辑器。我做了一个组合框来改变的RichTextBox内的选定文本的字体时,使用此代码块价值的变化:如何提取内容的字体大小

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

现在,我想我的组合框的值更改每次我选择的字符串时RichTextBox中具有不同字体大小的文本。这可能吗?

谢谢

回答

1

将事件处理程序添加到选择更改的事件。在该事件处理程序得到RichTextBox的选择TextElement.FontSizeProperty

... 
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.. 
} 
} 

确保你不叫OnSelectionChanged & CmbFont_SelectionChanged递归。

相关问题