我希望在扩展内容区域中没有要显示的内容时禁用扩展器,但同时我希望标头中的按钮始终处于启用状态。
以下XAML在禁用扩展器时不起作用,然后该按钮也被禁用。所以似乎某些东西(默认样式)覆盖了按钮的IsEnabled设置。
<Expander
IsEnabled="False"
IsExpanded="False">
<Expander.Header>
<StackPanel Orientation="Horizontal">
<TextBlock>Short header text</TextBlock>
<Button Content="Always enabled" IsEnabled="True" />
</StackPanel>
</Expander.Header>
<TextBlock Text="Not to be seen by the user, as the expander should be disabled to expand" />
</Expander>
似乎IsEnabled似乎总是在标题中的stackpanel,textblock和按钮上设置为False。我尝试使用一个成功更改标题背景(红色),但按钮仍未启用。
<DataTemplate x:Key="StretchableExpanderHeader">
<Grid x:Name="Grid">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<StackPanel x:Name="StackPanel">
<ContentPresenter Content="{Binding}" x:Name="ContentPresenter"/>
</StackPanel>
</Grid>
<DataTemplate.Triggers>
<Trigger SourceName="Grid" Property="IsEnabled" Value="False">
<Setter TargetName="ContentPresenter" Property="IsEnabled" Value="True" />
<Setter TargetName="ContentPresenter" Property="Background" Value="Red" />
</Trigger>
</DataTemplate.Triggers>
</DataTemplate>
有没有办法在没有重新设置扩展器样式的情况下启用按钮?我希望任何人都可以根据需要设置样式,但标题中的按钮不应受到影响。