首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在RichEditBox UWP中显示行号

在RichEditBox UWP中显示行号
EN

Stack Overflow用户
提问于 2017-05-22 08:08:07
回答 1查看 948关注 0票数 3

我想知道是否有可能在RichEditBox in UWP C#中显示行号(在单独的列中),或者是否有其他方法获得它。我在寻找解决这个问题的方法.在我看来,没有关于它的文档是很奇怪的:我只需要一个简单的文本编辑器。有许多Windows 10应用程序实现了它,我拒绝认为这是不可能的。

这只是来自代码编辑器应用程序CodeWriter的一个例子。有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2017-07-15 10:34:23

我实现了一个关于列表和RichEditBox的“结果”。现在,的解决方案不是很好的,在输入了大约50行之后,它就像地狱一样滞后,但至少我试过了,因为这个问题对我也很重要。

因此,我在一个具有两列的网格中设计了一个ListView和RichEditBox

代码语言:javascript
运行
复制
<ScrollViewer>
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto"></ColumnDefinition>
            <ColumnDefinition></ColumnDefinition>
        </Grid.ColumnDefinitions>

        <ListView Grid.Column="0" Name="LineNumbers" ScrollViewer.VerticalScrollMode="Disabled" ScrollViewer.VerticalScrollBarVisibility="Disabled"></ListView>
        <RichEditBox Grid.Column="1" x:Name="RebText" TextChanged="RebText_TextChanged" ScrollViewer.VerticalScrollMode="Disabled" ScrollViewer.VerticalScrollBarVisibility="Disabled"></RichEditBox>
    </Grid>
</ScrollViewer>

在后面的代码中,我添加了以下内容:

代码语言:javascript
运行
复制
private void RebText_TextChanged(object sender, RoutedEventArgs e)
{
    //Clear line numbers
    LineNumbers.Items.Clear();
    int i = 1;

    //Get all the thext
    ITextRange text = RebText.Document.GetRange(0, TextConstants.MaxUnitCount);
    string s = text.Text;

    if (s != "\r")
    {
        //Replace return char with some char that will be never used (I hope...)
        string[] tmp = s.Replace("\r", "§").Split('§');
        foreach (string st in tmp)
        {
            //String, adding new line
            if (st != "")
            {
                LineNumbers.Items.Add(i++);
            }
            //No string, empty space
            else
            {
                LineNumbers.Items.Add("");
            }                      
        }
    }
}

我认为.clear()方法和每次读取所有行都不是一个好做法。但是,如果你需要一个最快的50行的解决方案,也许这就是方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44107753

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档