richtextbox绑定

时间:2010-11-10 11:33:59

标签: wpf binding richtextbox

我有2个RichTextBox es(rtb1,rtb2),我在rtb1中写了一些内容并点击了回车键,在此事件中添加了从rtb1到rtb2的文本。我在后面的代码中解决了这个问题,在XAML中可以这样写吗?

C#代码:

    private void rtb2_PreviewKeyDown(object sender, KeyEventArgs e)
    {
        if (e.Key == Key.Enter)
        {
            var textElement = new Run() { Text = rtb2.Text };

            var paragraph = new Paragraph();
            paragraph.Inlines.Add(textElement);

            rtb1.Document.Blocks.Add(paragraph);

            rtb2.Document.Blocks.Clear();

            //On this place I would like set start position for input text in rtb2 richtextbox on the start position
        }
    }

感谢您的进步。

1 个答案:

答案 0 :(得分:0)

如果你真的需要你的组合RichTextBox具有通用的文​​档编辑功能,那么你所做的可能是最简单的,没有,没有纯XAML方法可以做到。

另一方面,如果您正在编写聊天应用程序或类似内容,可能有更好的方法:将合并的RichTextBox替换为显示所有聊天的ItemsControl作为单独项目的项目。然后按Enter键时,将文本添加到模型中的集合中。只要该集合实现INotifyCollectionChanged,新文本就会显示在您的ItemsControl中。如果您用于ItemsControl的模板允许编辑,则您的用户将能够编辑该项目。

你走哪条路取决于你想要完成的任务。