我有2个RichTextBoxes ( rtb1,rtb2),我写了一些用rtb1写的东西,然后点击enter键,在这个事件上添加了从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
}
}感谢您的支持。
发布于 2010-11-11 09:03:26
如果您确实需要组合的RichTextBox具有通用的文档编辑功能,那么您正在做的事情可能是最简单的,而且没有任何纯XAML方法可以做到这一点。
另一方面,如果您正在编写聊天应用程序或类似的应用程序,则可能有一种更好的方法:用一个将所有聊天项目显示为单独项目的ItemsControl替换组合的RichTextBox。然后,当按Enter键时,将文本添加到模型的集合中。只要集合实现了INotifyCollectionChanged,新文本就会出现在您的ItemsControl中。如果您用于ItemsControl的模板允许编辑,则您的用户将能够编辑该项目。
你走哪条路完全取决于你想要实现的目标。
https://stackoverflow.com/questions/4144014
复制相似问题