2010-05-31 2 views
0

Я с интересом следил за Silverlight text editor sample. Это дает мне много функций, таких как форматирование, поддержка буфера обмена, печать и т. Д.Silverlight 4 RichTextBox - InlineUiContains disabled

Образец также позволяет вставлять DataGrids с помощью InlineUiContainer.

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

Как я могу сделать InlineUiContainers, которые вставлены в RichTextBox включен?

ответ

2

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

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

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

0

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

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

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

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; 
    } 

удачи!

Смежные вопросы