Silverlight 4 RichTextBox - 禁用InlineUiContainers

时间:2010-05-31 14:09:50

标签: silverlight richtextbox

我一直关注着Silverlight text editor sample。它为我提供了许多功能,如格式化,剪贴板支持,打印等。

该示例还允许使用InlineUiContainer插入DataGrids。

我的问题是插入的DataGrid被禁用,而我的要求是用户可以编辑DataGrid的内容。

如何启用插入RichTextBox的InlineUiContainer?

2 个答案:

答案 0 :(得分:2)

RichTextBox必须是ReadOnly才能使控件响应事件。我通过默认将RichTextBox设置为ReadOnly然后在焦点上变得可编辑来解决这个问题。

我的问题是在DataGrid中有RichTextBox,它还在每个RichTextbox中嵌入了其他控件。听起来你的RTB可能永远不会失焦ReadOnly,因为只有一个RTB。

你必须考虑一些在某些条件下将RTB置于ReadOnly模式的策略。

答案 1 :(得分: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;
    }

祝你好运!