2015-12-10 2 views
0

Я программирую в wpf.i, чтобы прокручивать одну страницу вверх, когда выделенное слово перемещается из viewportHeight.So я использую ниже code.it работает нормально.wpf richtextbox BringIntoView Не работает с использованием TextRange.ClearAllProperties?

FrameworkContentElement fce = (textRange.Start.Parent as FrameworkContentElement); 
      if (fce != null) 
      { 
       fce.BringIntoView(); 
      } 

Но после того, как мне нужно использовать приведенный ниже код для выделения слова.

TextRange fullRange = new TextRange(rtb.Document.ContentStart, rtb.Document.ContentEnd); 
       fullRange.ClearAllProperties(); 
       TextPointer start = fullRange.Start.GetPositionAtOffset(offset); 
       TextPointer end = start.GetPositionAtOffset(length); 
       TextRange textRange = rtb.Selection; 
       textRange.Select(start, end); 
textRange.ApplyPropertyValue(TextElement.BackgroundProperty, new SolidColorBrush(m_DehighlightbackgroundColor)); 
textRange.ApplyPropertyValue(TextElement.ForegroundProperty, new SolidColorBrush(m_DehighlightforegroundColor)); 

После того, как я использовал fullRange.ClearAllProperties();fce.BringIntoView(); не working.I означает не выделите выделенное слово.

Итак, как решить эту проблему?

С уважением Арджуна

ответ

0

Этого ответ решил аналогичную проблему для меня:

How to bring Inline from a RichTextBox Child into View RichTextBox-ребенок в ракурсе

Итак, попытайтесь поместить следующее перед BringIntoView:

Application.Current.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Background, new Action(delegate { }));

Смежные вопросы