我有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
}
}
感谢您的进步。
答案 0 :(得分:0)
如果你真的需要你的组合RichTextBox
具有通用的文档编辑功能,那么你所做的可能是最简单的,没有,没有纯XAML方法可以做到。
另一方面,如果您正在编写聊天应用程序或类似内容,可能有更好的方法:将合并的RichTextBox
替换为显示所有聊天的ItemsControl
作为单独项目的项目。然后按Enter键时,将文本添加到模型中的集合中。只要该集合实现INotifyCollectionChanged
,新文本就会显示在您的ItemsControl
中。如果您用于ItemsControl
的模板允许编辑,则您的用户将能够编辑该项目。
你走哪条路取决于你想要完成的任务。