繁体   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