RichTextBox 新增控制元件,被禁用如何處理 button
WPF中RichTextBox的確非常的強大, 但讓人很鬱悶的是:新增到其中的控制元件總是被禁用的(IsEnabled始終為false)
參考以下程式碼:
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="LearnWPF - Changing Elements with Styles"
Width="350" Height="200">
<RichTextBox >
<!-- regular FlowDocument -->
<FlowDocument FontFamily="Segoe" FontSize="12" >
<Paragraph>This is some text inside a flow
<BlockUIContainer>
<Button Content="Click Me?" IsEnabled="True">
</Button>
</BlockUIContainer>
</FlowDocument>
</RichTextBox>
</Window>
雖然我們已經將Button的IsEnable屬性設定為True,但實際執行時其仍然是被禁用的.
解決方案如下:
重寫FlowDocument的IsEnabledCore屬性,將其返回值設定為True
class MyFlowDocument : FlowDocument
{
protected override bool IsEnabledCore
{
get
{
return true;
}
}
}
然後使用重寫了的MyFlowDocument替換FlowDocument就可以了:)