2012-02-29 39 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遞歸。

相關問題