簡體   English   中英

WPF,RichTextBox問題在光標位置獲取正確的textproperties

[英]WPF, RichTextBox problem in getting the right textproperties at cursor position

我正在使用wpf richtextbox構建一個簡單的編輯器。 該編輯器具有用於粗體,斜體,帶下划線等的某種切換按鈕,當所選文本或光標處的文本具有approptiate屬性時,這些按鈕將被“按下”。 我這樣做是這樣的:

private TextRange GetSelectedTextRange() {
  if(_richTextBox == null) return null;
  return new TextRange(_richTextBox.Selection.Start, _richTextBox.Selection.End);
}

private void UpdateIsItalic() {
  TextRange selectedTextRange = GetSelectedTextRange();
  if(selectedTextRange == null) {
    IsItalic = false;
    return;
  }
  object fontStyleObject = selectedTextRange.GetPropertyValue(Run.FontStyleProperty);
  if(fontStyleObject is FontStyle) {
    FontStyle fontStyle = (FontStyle)fontStyleObject;
    IsItalic = (fontStyle == FontStyles.Italic || fontStyle == FontStyles.Oblique);
  } else {
    IsItalic = false;
  }
}

問題是,當光標位於該行的末尾並且例如將ToggleItalic命令發送到RichTextBox時,我從SelectedTextRange.GetPropertyValue返回的值對於光標位於其后的文本有效,而對我不是m即將輸入,因此我將獲得與命令前相同的值。 但是我想要的是,當我發送ToggleItalic命令時,當我要鍵入的字母為斜體時,結果是IsItalic設置為true。 有誰知道如何解決這個問題?

提前謝謝了,

Liewe

我找到了一個解決方案,我不應該創建一個新的TextRange,而只是使用TextSelection,簡而言之,像這樣:

object fontStyleObject = _richTextBox.Selection.GetPropertyValue(Run.FontStyleProperty);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM