Silverlight 4 RichTextBox - InlineUiContainers отключен - PullRequest
0 голосов
/ 31 мая 2010

Я с интересом слежу за примером в текстовом редакторе Silverlight . Это дает мне много функций, таких как форматирование, поддержка буфера обмена, печать и т. Д.

Пример также позволяет вставлять сетки данных с помощью InlineUiContainer .

Моя проблема в том, что вставленная DataGrid отключена, а мое требование состоит в том, чтобы пользователь мог редактировать содержимое DataGrid.

Как включить InlineUiContainers, которые вставляются в RichTextBox?

Ответы [ 2 ]

2 голосов
/ 11 июня 2010

RichTextBox должен быть ReadOnly, чтобы элементы управления реагировали на события. Я справился с этим, сделав RichTextBox по умолчанию ReadOnly, а затем стал доступным для редактирования в фокусе.

Моя проблема заключалась в наличии RichTextBoxes в DataGrid, который также имеет другие элементы управления, встроенные в каждый RichTextbox. Не похоже, что ваш RTB может быть не в фокусе только для чтения, поскольку будет только один RTB.

Вам придется подумать о стратегии, которая переводит RTB в режим ReadOnly при определенных условиях.

0 голосов
/ 07 января 2013

Я столкнулся с той же проблемой и не нашел ответа онлайн ...

Это то, что я сделал, немного некрасиво, но это работает:

Создайте пользовательский элемент управления и поместите сетку данных внутрь. Добавьте в пользовательский элемент управления следующий код:

    public CustomControl()
    {
        InitializeComponent();


        this.IsEnabledChanged += EnableChanged;
    }

    private int counter = 0;
    private void EnableChanged(object sender, DependencyPropertyChangedEventArgs e)
    {
        if (counter == 0)
        {
            this.IsEnabled = (bool) e.OldValue;
            counter = 1;
            return;
        }
        counter = 0;
    }

Удачи!

...