簡體   English   中英

C#WPF RichTextBox滾動到文本?

[英]C# WPF RichTextBox Scroll to text?

我正在從事小寫游戲,但遇到了問題。 我有一個richtextbox,其中包含一個帶有很多運行的段落,我希望它滾動到我擁有的某些運行。 我有一個List對象,其中包含RTB中的所有內聯,而Select()方法由於某些原因而無法正常工作,可能是因為它只是現成的rtb。 對滾動到所選單詞有任何想法嗎? 我的代碼:

    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());
    }

例如:rtb包含:嘿,您好,單詞schnitzel是怎么回事,嘿

我希望它滾動到單詞“嘿”。

我嘗試使用Select()方法,該方法不起作用...

創建運行並添加運行(非內聯)
保存對運行的引用(例如列表)
然后只需調用Runs [x] .BringIntoView()
尚未在RTB上進行測試,但是我已經使用FlowDocument和FlowDocumentViewer進行了此操作

進入視圖

暫無
暫無

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

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