InlineUIContainer&在RichTextBox.Document中始终禁用BlockUIContainer

时间:2011-04-16 02:10:56

标签: wpf richtextbox flowdocument

例如,如果我有以下代码,则两个按钮都被禁用:

<RichTextBox>
    <FlowDocument>
        <BlockUIContainer>
            <Button Content="!"/>
        </BlockUIContainer>
        <Paragraph>
            <InlineUIContainer>
                <Button Content="!"/>
            </InlineUIContainer>
        </Paragraph>
    </FlowDocument>
</RichTextBox>

我不知道为什么会出现这种情况或者我可以做些什么来防止这种情况,显然禁用按钮不是很有用,所以任何帮助解决这个问题都将不胜感激。

编辑:事实证明,FlowDocument由于某种原因被禁用,但我还没有找到重新启用它的方法,因为它立即变回IsEnabled="False" ...

2 个答案:

答案 0 :(得分:5)

RichTextBox本身实际上有一个名为IsDocumentEnabled(.NET 3.5以上)的属性,可以设置为true以启用文档。

答案 1 :(得分:2)

您可能需要创建自定义flowdocument并覆盖其IsEnabledCore属性。查看此链接 - http://learnwpf.com/post/2007/01/18/When-I-add-Controls-to-a-WPF-RichTextBox-They-Are-Always-Disabled-How-can-I-change-that.aspx

class EnabledFlowDocument : FlowDocument
{
    protected override bool IsEnabledCore
    {
        get
        {
            return true;
        }
    }
}