我想在禁用时更改组合框的背景(Enabled = true)
我在网上发现了一些关于controltemplate的文章。
但是,它也会删除下拉效果。
如果禁用所有其他内容保持默认阶段,我怎么才能改变背景。
谢谢。
答案 0 :(得分:3)
要实现此目的,您可以使用Trigger作为ComboBox样式。
尝试这样的事情:
<ComboBox>
<ComboBox.Style>
<Style TargetType="ComboBox">
<Style.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Background" Value="AliceBlue"/>
</Trigger>
</Style.Triggers>
</Style>
</ComboBox.Style>
</ComboBox>
看起来ComboBox使用系统资源来设置其背景。这就是我从ComboBox control template documentation中发现的。
然后尝试这样的事情:
<ComboBox Margin="149,121,172,164" IsEnabled="False">
<ComboBox.Resources>
<SolidColorBrush x:Key="DisabledBackgroundBrush" Color="AliceBlue"/>
</ComboBox.Resources>
<ComboBox.Style>
<Style TargetType="ComboBox">
<Style.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Background" Value="{StaticResource DisabledBackgroundBrush}"/>
</Trigger>
</Style.Triggers>
</Style>
</ComboBox.Style>
</ComboBox>
答案 1 :(得分:0)
您不能只更改模板中的一件事,您必须切换整个模板。获取默认的here(Default WPF Themes
链接),您可以相应地修改它。
您可以使用简单的Style
和Trigger
执行此操作。