привязка richtextbox - PullRequest
       20

привязка richtextbox

0 голосов
/ 10 ноября 2010

У меня есть 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 голосов
/ 11 ноября 2010

Если вам действительно нужно, чтобы ваш объединенный RichTextBox имел обобщенные возможности редактирования документов, то, что вы делаете, вероятно, является самым простым и нет, нет способа сделать это чисто на XAML.

С другой стороны, если вы пишете приложение для чата или что-то в этом роде, может быть гораздо лучший способ сделать это: замените комбинированный RichTextBox на ItemsControl, который отображает все элементы чата как отдельные элементы , Затем, когда вы нажмете Enter, добавьте текст в коллекцию вашей модели. Пока коллекция реализует INotifyCollectionChanged, новый текст будет отображаться в вашем ItemsControl. И если шаблон, который вы используете для ItemsControl, позволяет редактировать, ваш пользователь сможет редактировать элемент.

Какой путь вы выберете, зависит от того, чего вы пытаетесь достичь.

...