禁用时的组合框背景

时间:2011-11-10 12:13:41

标签: wpf combobox

我想在禁用时更改组合框的背景(Enabled = true)

我在网上发现了一些关于controltemplate的文章。

但是,它也会删除下拉效果。

如果禁用所有其他内容保持默认阶段,我怎么才能改变背景。

谢谢。

2 个答案:

答案 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)

您不能只更改模板中的一件事,您必须切换整个模板。获取默认的hereDefault WPF Themes链接),您可以相应地修改它。

您可以使用简单的StyleTrigger执行此操作。

相关问题