2015-01-26 2 views
0

Я работаю над написанием игры, и я столкнулся с проблемой. У меня есть richtextbox, который содержит один абзац с большим количеством прогонов в нем, и я хочу, чтобы он прокрутил до некоторого пробега, который у меня есть. У меня есть объект List, который содержит все встроенные строки в RTB, а метод Select() не работает по какой-либо причине, может быть, потому что это готовый только rtb. Любые идеи для прокрутки выбранного слова? Мой код:C# WPF RichTextBox Выделите текст?

private bool isKey = false; 
    private Paragraph p; 
    private List<Inline> inlineList; 
    private int inlineIndex = 0, wpm = 0, wordIndex = 0, lineIndex = 0; 
    private string[] words; 
    public MainWindow() 
    { 
     InitializeComponent(); 
     p = new Paragraph(); 
     foreach (string s in words) 
     { 
      p.Inlines.Add(s); 
      p.Inlines.Add(" "); 
     } 
     WordBox.Document.Blocks.Clear(); 
     WordBox.Document.Blocks.Add(p); 
     inlineList = p.Inlines.ToList(); 
     inlineList[0].Background = Brushes.LightGray; 
     this.Activate(); 
     InputBox.Focus(); 
    } 
    //The Method I want to put the scrolling feature in: 
    private void MoveWord() 
    { 
     if (inlineIndex + 2 < inlineList.Count) 
     { 
      inlineList[inlineIndex].Background = Brushes.Transparent; 
      inlineIndex += 2; 
      inlineList[inlineIndex].Background = Brushes.LightGray; 
      WordBox.Selection.Select(inlineList[inlineIndex].ContentStart, inlineList[inlineIndex].ContentEnd); 
     } 
     else 
      MessageBox.Show(wpm.ToString()); 
    } 

Для примера: РИТЭГа содержит: Эй Привет, что случилось слово шницель эй

И я хочу, чтобы перейти к слову «эй».

Я пытался использовать метод Select(), который не работал ...

+1

Покажите нам код, и некоторые примеры текста и место Whe вы хотите, чтобы он прокручивался. –

+0

@RobertHarvey Я отредактировал :) –

+0

Где ваш 'Select()' звонок? –

ответ

2

Создание прогонов и добавить пробегов (не Внутристрочный)
Сохранить ссылку на прогоны (например, List)
а потом просто называют Запускается [х] .BringIntoView()
не испытали на RTB, но я сделал это с FlowDocument и FlowDocumentViewer

BringIntoView

+0

Ты гений! Спасибо огромное! Он отлично работает! –